| #
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
|