#
b1ed91f3 |
| 09-Jul-2011 |
Chris Lattner <sabre@nondot.org> |
Land the long talked about "type system rewrite" patch. This patch brings numerous advantages to LLVM. One way to look at it is through diffstat: 109 files changed, 3005 insertions(+), 5906 deleti
Land the long talked about "type system rewrite" patch. This patch brings numerous advantages to LLVM. One way to look at it is through diffstat: 109 files changed, 3005 insertions(+), 5906 deletions(-)
Removing almost 3K lines of code is a good thing. Other advantages include:
1. Value::getType() is a simple load that can be CSE'd, not a mutating union-find operation. 2. Types a uniqued and never move once created, defining away PATypeHolder. 3. Structs can be "named" now, and their name is part of the identity that uniques them. This means that the compiler doesn't merge them structurally which makes the IR much less confusing. 4. Now that there is no way to get a cycle in a type graph without a named struct type, "upreferences" go away. 5. Type refinement is completely gone, which should make LTO much MUCH faster in some common cases with C++ code. 6. Types are now generally immutable, so we can use "Type *" instead "const Type *" everywhere.
Downsides of this patch are that it removes some functions from the C API, so people using those will have to upgrade to (not yet added) new API. "LLVM 3.0" is the right time to do this.
There are still some cleanups pending after this, this patch is large enough as-is.
llvm-svn: 134829
show more ...
|
#
372ad64b |
| 20-Jun-2011 |
Jay Foad <jay.foad@gmail.com> |
Make better use of the PHINode API.
Change various bits of code to make better use of the existing PHINode API, to insulate them from forthcoming changes in how PHINodes store their operands.
llvm-
Make better use of the PHINode API.
Change various bits of code to make better use of the existing PHINode API, to insulate them from forthcoming changes in how PHINodes store their operands.
llvm-svn: 133434
show more ...
|
#
c4407080 |
| 17-Jun-2011 |
Chris Lattner <sabre@nondot.org> |
Drop the "2" suffix on some enums.
llvm-svn: 133274
|
#
bb95d5e9 |
| 17-Jun-2011 |
Chris Lattner <sabre@nondot.org> |
missed a file.
llvm-svn: 133270
|
#
cffdcae2 |
| 14-Jun-2011 |
Evan Cheng <evan.cheng@apple.com> |
Update BitcodeWriter to match recent Triple changes. rdar://9603399
llvm-svn: 132959
|
#
6a11b64c |
| 03-Jun-2011 |
Chad Rosier <mcrosier@apple.com> |
Revert name change from r132533. Lower case naming was intended per style guidelines.
llvm-svn: 132555
|
#
7ae2638d |
| 03-Jun-2011 |
Chad Rosier <mcrosier@apple.com> |
Whitespace and other cleanup. Functionallity unchanged.
llvm-svn: 132533
|
#
64c92844 |
| 06-May-2011 |
Nick Lewycky <nicholas@mxc.ca> |
It's valid to take the blockaddress of a different function, so remove this assert in the bitcode writer. No change needed because the ValueEnumerator holds a whole-module numbering anyhow. Fixes PR9
It's valid to take the blockaddress of a different function, so remove this assert in the bitcode writer. No change needed because the ValueEnumerator holds a whole-module numbering anyhow. Fixes PR9857!
llvm-svn: 131016
show more ...
|
#
35a9c3cd |
| 10-Apr-2011 |
Bill Wendling <isanbard@gmail.com> |
Revert r129235 pending a vetting of the EH rewrite. --- Reverse-merging r129235 into '.': D test/Feature/bb_attrs.ll U include/llvm/BasicBlock.h U include/llvm/Bitcode/LLVMBitCodes.h U li
Revert r129235 pending a vetting of the EH rewrite. --- Reverse-merging r129235 into '.': D test/Feature/bb_attrs.ll U include/llvm/BasicBlock.h U include/llvm/Bitcode/LLVMBitCodes.h U lib/VMCore/AsmWriter.cpp U lib/VMCore/BasicBlock.cpp U lib/AsmParser/LLParser.cpp U lib/AsmParser/LLLexer.cpp U lib/AsmParser/LLToken.h U lib/Bitcode/Reader/BitcodeReader.cpp U lib/Bitcode/Writer/BitcodeWriter.cpp
llvm-svn: 129259
show more ...
|
#
3d5450d8 |
| 10-Apr-2011 |
Bill Wendling <isanbard@gmail.com> |
Beginning of the Great Exception Handling Rewrite.
* Add a "landing pad" attribute to the BasicBlock. * Modify the bitcode reader and writer to handle said attribute.
Later: The verifier will ensur
Beginning of the Great Exception Handling Rewrite.
* Add a "landing pad" attribute to the BasicBlock. * Modify the bitcode reader and writer to handle said attribute.
Later: The verifier will ensure that the landing pad attribute is used in the appropriate manner. I.e., not applied to the entry block, and applied only to basic blocks that are branched to via a `dispatch' instruction.
(This is a work-in-progress.)
llvm-svn: 129235
show more ...
|
Revision tags: llvmorg-2.9.0 |
|
#
337a1b29 |
| 06-Apr-2011 |
Rafael Espindola <rafael.espindola@gmail.com> |
Do a topological sort of the types before writing them out.
This takes the linking of libxul on linux from 6m54.931s to 5m39.840s.
llvm-svn: 129009
|
Revision tags: llvmorg-2.9.0-rc3, llvmorg-2.9.0-rc2, llvmorg-2.9.0-rc1 |
|
#
35315d06 |
| 06-Feb-2011 |
Chris Lattner <sabre@nondot.org> |
enhance vmcore to know that udiv's can be exact, and add a trivial instcombine xform to exercise this.
Nothing forms exact udivs yet though. This is progress on PR8862
llvm-svn: 124992
|
#
45e6c195 |
| 08-Jan-2011 |
Rafael Espindola <rafael.espindola@gmail.com> |
First step in fixing PR8927:
Add a unnamed_addr bit to global variables and functions. This will be used to indicate that the address is not significant and therefore the constant or function can be
First step in fixing PR8927:
Add a unnamed_addr bit to global variables and functions. This will be used to indicate that the address is not significant and therefore the constant or function can be merged with others.
If an optimization pass can show that an address is not used, it can set this.
Examples of things that can have this set by the FE are globals created to hold string literals and C++ constructors.
Adding unnamed_addr to a non-const global should have no effect unless an optimization can transform that global into a constant.
Aliases are not allowed to have unnamed_addr since I couldn't figure out any use for it.
llvm-svn: 123063
show more ...
|
#
0de20af7 |
| 19-Dec-2010 |
Nick Lewycky <nicholas@mxc.ca> |
Add missing standard headers. Patch by Joerg Sonnenberger!
llvm-svn: 122193
|
#
6f3a90b5 |
| 29-Nov-2010 |
Chris Lattner <sabre@nondot.org> |
Generalize the darwin wrapper hack to work with generic macho triples as well as darwin ones.
llvm-svn: 120346
|
#
447762da |
| 29-Nov-2010 |
Michael J. Spencer <bigcheesegs@gmail.com> |
Merge System into Support.
llvm-svn: 120298
|
Revision tags: llvmorg-2.8.0, llvmorg-2.8.0-rc3, llvmorg-2.8.0-rc2 |
|
#
baa5d045 |
| 10-Sep-2010 |
Dale Johannesen <dalej@apple.com> |
Add X86 MMX type to bitcode and Type. (The Ada bindings probably need it too, but all the obvious places to change say "do not edit this file".)
llvm-svn: 113618
|
#
6dbbab68 |
| 09-Sep-2010 |
Dan Gohman <gohman@apple.com> |
Discard metadata produced by LLVM 2.7. The value enumeration it used is different from what the code now uses in a two ways: NamedMDNodes were considered Values and included in the numbering, and the
Discard metadata produced by LLVM 2.7. The value enumeration it used is different from what the code now uses in a two ways: NamedMDNodes were considered Values and included in the numbering, and the function-local metadata counter wasn't reset between functions.
The later problem breaks lazy deserialization, so instead of trying to emulate the old numbering, just drop the old metadata. The only in-tree use case is debug info with LTO, where the QOI loss is considered acceptable.
llvm-svn: 113557
show more ...
|
Revision tags: llvmorg-2.8.0-rc1, llvmorg-2.8.0-rc0 |
|
#
13ee795c |
| 28-Aug-2010 |
Chris Lattner <sabre@nondot.org> |
remove unions from LLVM IR. They are severely buggy and not being actively maintained, improved, or extended.
llvm-svn: 112356
|
#
578ee407 |
| 20-Aug-2010 |
Bill Wendling <isanbard@gmail.com> |
Create the new linker type "linker_private_weak_def_auto".
It's similar to "linker_private_weak", but it's known that the address of the object is not taken. For instance, functions that had an inli
Create the new linker type "linker_private_weak_def_auto".
It's similar to "linker_private_weak", but it's known that the address of the object is not taken. For instance, functions that had an inline definition, but the compiler decided not to inline it. Note, unlike linker_private and linker_private_weak, linker_private_weak_def_auto may have only default visibility. The symbols are removed by the linker from the final linked image (executable or dynamic library).
llvm-svn: 111684
show more ...
|
#
79102d97 |
| 03-Aug-2010 |
Chris Lattner <sabre@nondot.org> |
avoid undefined behavior negating minint.
llvm-svn: 110117
|
#
2637cc1a |
| 21-Jul-2010 |
Dan Gohman <gohman@apple.com> |
Make NamedMDNode not be a subclass of Value, and simplify the interface for creating and populating NamedMDNodes.
llvm-svn: 109061
|
#
47dc8fd6 |
| 21-Jul-2010 |
Dan Gohman <gohman@apple.com> |
Add some debug output to help diagnose PR7689.
llvm-svn: 109036
|
#
093cb79d |
| 21-Jul-2010 |
Dan Gohman <gohman@apple.com> |
Disallow null as a named metadata operand. Make MDNode::destroy private. Fix the one thing that used MDNode::destroy, outside of MDNode itself.
One should never delete or destroy an MDNode explicitl
Disallow null as a named metadata operand. Make MDNode::destroy private. Fix the one thing that used MDNode::destroy, outside of MDNode itself.
One should never delete or destroy an MDNode explicitly. MDNodes implicitly go away when there are no references to them (implementation details aside).
llvm-svn: 109028
show more ...
|
#
43aa8f03 |
| 20-Jul-2010 |
Dan Gohman <gohman@apple.com> |
Add support for remapping metadata kind IDs when reading in a bitcode file, so that two bitcode files where the same metadata kind name happens to have been assigned a different ID can still be linke
Add support for remapping metadata kind IDs when reading in a bitcode file, so that two bitcode files where the same metadata kind name happens to have been assigned a different ID can still be linked together.
Eliminate the restriction that metadata kind IDs can't be 0.
Change MD_dbg from 1 to 0, because we can now, and because it's less mysterious that way.
llvm-svn: 108939
show more ...
|