History log of /llvm-project-15.0.7/llvm/lib/Bitcode/Reader/BitcodeReader.cpp (Results 851 – 875 of 1180)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# e3e19cbb 28-May-2012 Stepan Dyatkovskiy <[email protected]>

PR1255: Case Ranges
Implemented IntItem - the wrapper around APInt. Why not to use APInt item directly right now?
1. It will very difficult to implement case ranges as series of small patches. We got

PR1255: Case Ranges
Implemented IntItem - the wrapper around APInt. Why not to use APInt item directly right now?
1. It will very difficult to implement case ranges as series of small patches. We got several large and heavy patches. Each patch will about 90-120 kb. If you replace ConstantInt with APInt in SwitchInst you will need to changes at the same time all Readers,Writers and absolutely all passes that uses SwitchInst.
2. We can implement APInt pool inside and save memory space. E.g. we use several switches that works with 256 bit items (switch on signatures, or strings). We can avoid value duplicates in this case.
3. IntItem can be easyly easily replaced with APInt.
4. Currenly we can interpret IntItem both as ConstantInt and as APInt. It allows to provide SwitchInst methods that works with ConstantInt for non-updated passes.

Why I need it right now? Currently I need to update SimplifyCFG pass (EqualityComparisons). I need to work with APInts directly a lot, so peaces of code
ConstantInt *V = ...;
if (V->getValue().ugt(AnotherV->getValue()) {
...
}
will look awful. Much more better this way:
IntItem V = ConstantIntVal->getValue();
if (AnotherV < V) {
}

Of course any reviews are welcome.

P.S.: I'm also going to rename ConstantRangesSet to IntegersSubset, and CRSBuilder to IntegersSubsetMapping (allows to map individual subsets of integers to the BasicBlocks).
Since in future these classes will founded on APInt, it will possible to use them in more generic ways.

llvm-svn: 157576

show more ...


# 3cb6f83e 28-May-2012 Chris Lattner <[email protected]>

switch AttrListPtr::get to take an ArrayRef, simplifying a lot of clients.

llvm-svn: 157556


# 561dae09 23-May-2012 Nuno Lopes <[email protected]>

revert r156383: removal of TYPE_CODE_FUNCTION_OLD
Apparently LLVM only stopped emitting this after LLVM 3.0

llvm-svn: 157325


# 3dea4218 14-May-2012 Stepan Dyatkovskiy <[email protected]>

SwitchInst cosmetics: renamed "Hash" method to "hash"

llvm-svn: 156757


Revision tags: llvmorg-3.1.0
# 0beab5e1 12-May-2012 Stepan Dyatkovskiy <[email protected]>

Recommited r156374 with critical fixes in BitcodeReader/Writer:
Ordinary patch for PR1255.
Added new case-ranges orientated methods for adding/removing cases in SwitchInst. After this patch cases wil

Recommited r156374 with critical fixes in BitcodeReader/Writer:
Ordinary patch for PR1255.
Added new case-ranges orientated methods for adding/removing cases in SwitchInst. After this patch cases will internally representated as ConstantArray-s instead of ConstantInt, externally cases wrapped within the ConstantRangesSet object.
Old methods of SwitchInst are also works well, but marked as deprecated. So on this stage we have no side effects except that I added support for case ranges in BitcodeReader/Writer, of course test for Bitcode is also added. Old "switch" format is also supported.

llvm-svn: 156704

show more ...


Revision tags: llvmorg-3.1.0-rc3
# 24ac479a 08-May-2012 Nuno Lopes <[email protected]>

remove autoupgrade code for old function attributes format.
I still left another fixme regarding alignment, because I'm unsure how to remove that code without breaking things

llvm-svn: 156387


# f7596c91 08-May-2012 Nuno Lopes <[email protected]>

remove TYPE_CODE_FUNCTION_OLD type code. it is no longer in use and it was marked for removal in 3.0

llvm-svn: 156383


# 5eafce5c 08-May-2012 Stepan Dyatkovskiy <[email protected]>

Rejected r156374: Ordinary PR1255 patch. Due to clang-x86_64-debian-fnt buildbot failure.

llvm-svn: 156377


# b6a46401 08-May-2012 Stepan Dyatkovskiy <[email protected]>

Ordinary patch for PR1255.
Added new case-ranges orientated methods for adding/removing cases in SwitchInst. After this patch cases will internally representated as ConstantArray-s instead of Constan

Ordinary patch for PR1255.
Added new case-ranges orientated methods for adding/removing cases in SwitchInst. After this patch cases will internally representated as ConstantArray-s instead of ConstantInt, externally cases wrapped within the ConstantRangesSet object.
Old methods of SwitchInst are also works well, but marked as deprecated. So on this stage we have no side effects except that I added support for case ranges in BitcodeReader/Writer, of course test for Bitcode is also added. Old "switch" format is also supported.

llvm-svn: 156374

show more ...


Revision tags: llvmorg-3.1.0-rc2, llvmorg-3.1.0-rc1
# 92ef975c 29-Feb-2012 Derek Schuff <[email protected]>

Fix PR12080 by ensuring that MaterializeModule actually reads all the bitcode
in the streaming case.

llvm-svn: 151676


# 8b2dcad4 06-Feb-2012 Derek Schuff <[email protected]>

Enable streaming of bitcode

This CL delays reading of function bodies from initial parse until
materialization, allowing overlap of compilation with bitcode download.

llvm-svn: 149918


# b7d8f21a 06-Feb-2012 Bill Wendling <[email protected]>

[unwind removal] Remove the 'unwind' instruction parsing bits.

llvm-svn: 149897


# 206dddda 06-Feb-2012 Derek Schuff <[email protected]>

Test commit; also removes some trailing whitespace

llvm-svn: 149887


# bb8278a1 05-Feb-2012 Chris Lattner <[email protected]>

Improve the bitcode reader's handling of constant strings to use
ConstantDataArray::getString direction, instead of "boxing" each
byte into a ConstantInt and using ConstantArray::get.

llvm-svn: 1498

Improve the bitcode reader's handling of constant strings to use
ConstantDataArray::getString direction, instead of "boxing" each
byte into a ConstantInt and using ConstantArray::get.

llvm-svn: 149805

show more ...


# 372dd1ea 30-Jan-2012 Chris Lattner <[email protected]>

Add bitcode reader and writer support for ConstantDataAggregate, which
should be feature complete now. Lets see if it works.

llvm-svn: 149215


# cc3aaf18 27-Jan-2012 Chris Lattner <[email protected]>

smallvectorize.

llvm-svn: 149117


# a5054ad2 20-Jan-2012 Kostya Serebryany <[email protected]>

Extend Attributes to 64 bits

Problem: LLVM needs more function attributes than currently available (32 bits).
One such proposed attribute is "address_safety", which shows that a function is being ch

Extend Attributes to 64 bits

Problem: LLVM needs more function attributes than currently available (32 bits).
One such proposed attribute is "address_safety", which shows that a function is being checked for address safety (by AddressSanitizer, SAFECode, etc).

Solution:
- extend the Attributes from 32 bits to 64-bits
- wrap the object into a class so that unsigned is never erroneously used instead
- change "unsigned" to "Attributes" throughout the code, including one place in clang.
- the class has no "operator uint64 ()", but it has "uint64_t Raw() " to support packing/unpacking.
- the class has "safe operator bool()" to support the common idiom: if (Attributes attr = getAttrs()) useAttrs(attr);
- The CTOR from uint64_t is marked explicit, so I had to add a few explicit CTOR calls
- Add the new attribute "address_safety". Doing it in the same commit to check that attributes beyond first 32 bits actually work.
- Some of the functions from the Attribute namespace are worth moving inside the class, but I'd prefer to have it as a separate commit.

Tested:
"make check" on Linux (32-bit and 64-bit) and Mac (10.6)
built/run spec CPU 2006 on Linux with clang -O2.


This change will break clang build in lib/CodeGen/CGCall.cpp.
The following patch will fix it.

llvm-svn: 148553

show more ...


# b7993465 02-Jan-2012 Rafael Espindola <[email protected]>

Materialize functions whose basic blocks are used by global variables. Fixes
PR11677.

llvm-svn: 147425


# 518cda42 17-Dec-2011 Dan Gohman <[email protected]>

The powers that be have decided that LLVM IR should now support 16-bit
"half precision" floating-point with a first-class type.

This patch adds basic IR support (but not codegen support).

llvm-svn:

The powers that be have decided that LLVM IR should now support 16-bit
"half precision" floating-point with a first-class type.

This patch adds basic IR support (but not codegen support).

llvm-svn: 146786

show more ...


# ca2567b8 07-Dec-2011 Chad Rosier <[email protected]>

Begin adding experimental support for preserving use-list ordering of bitcode
files. First, add a new block USELIST_BLOCK to the bitcode format. This is
where USELIST_CODE_ENTRYs will be stored.

Begin adding experimental support for preserving use-list ordering of bitcode
files. First, add a new block USELIST_BLOCK to the bitcode format. This is
where USELIST_CODE_ENTRYs will be stored. The format of the USELIST_CODE_ENTRYs
have not yet been defined. Add support in the BitcodeReader for parsing the
USELIST_BLOCK.
Part of rdar://9860654 and PR5680.

llvm-svn: 146078

show more ...


# 90ef78c0 27-Nov-2011 Chris Lattner <[email protected]>

remove autoupgrade support for really old-style debug info intrinsics.
I think this is the last of autoupgrade that can be removed in 3.1.
Can the atomic upgrade stuff also go?

llvm-svn: 145169


# db891539 27-Nov-2011 Chris Lattner <[email protected]>

remove autoupgrade support for LLVM 2.9 exception stuff. Mainline supports
LLVM 3.0 and later.

llvm-svn: 145165


# 1c9e5678 27-Nov-2011 Chris Lattner <[email protected]>

remove support for reading llvm 2.9 .bc files. LLVM 3.1 is only compatible back to 3.0

llvm-svn: 145164


Revision tags: llvmorg-3.0.0, llvmorg-3.0.0-rc4, llvmorg-3.0.0-rc3
# 9589872a 03-Nov-2011 Chad Rosier <[email protected]>

Remove some cruft from the BitcodeWriter, while still maintaining backward
compatibility in the BitcodeReader.

llvm-svn: 143598


Revision tags: llvmorg-3.0.0-rc2, llvmorg-3.0.0-rc1
# ad33c139 05-Oct-2011 Bill Wendling <[email protected]>

Also update the EH with bitcode. I missed this earlier. Thanks to Duncan for pointing it out.

llvm-svn: 141169


1...<<31323334353637383940>>...48