| #
b8f9b7a9 |
| 10-May-2009 |
Nick Lewycky <[email protected]> |
Make MDNode use CallbackVH. Also change MDNode to store Value* instead of Constant* in preperation of a future change to support holding non-Constants in an MDNode.
llvm-svn: 71407
|
| #
184f1be4 |
| 13-Apr-2009 |
Chris Lattner <[email protected]> |
Add a new "available_externally" linkage type. This is intended to support C99 inline, GNU extern inline, etc. Related bugzilla's include PR3517, PR3100, & PR2933. Nothing uses this yet, but it ap
Add a new "available_externally" linkage type. This is intended to support C99 inline, GNU extern inline, etc. Related bugzilla's include PR3517, PR3100, & PR2933. Nothing uses this yet, but it appears to work.
llvm-svn: 68940
show more ...
|
| #
49f89195 |
| 04-Apr-2009 |
Nick Lewycky <[email protected]> |
Add support for embedded metadata to LLVM. This introduces two new types of Constant, MDString and MDNode which can only be used by globals with a name that starts with "llvm." or as arguments to a f
Add support for embedded metadata to LLVM. This introduces two new types of Constant, MDString and MDNode which can only be used by globals with a name that starts with "llvm." or as arguments to a function with the same naming restriction.
llvm-svn: 68420
show more ...
|
| #
93eefa00 |
| 23-Mar-2009 |
Dale Johannesen <[email protected]> |
Fix internal representation of fp80 to be the same as a normal i80 {low64, high16} rather than its own {high64, low16}. A depressing number of places know about this; I think I got them all. Bitcode
Fix internal representation of fp80 to be the same as a normal i80 {low64, high16} rather than its own {high64, low16}. A depressing number of places know about this; I think I got them all. Bitcode readers and writers convert back to the old form to avoid breaking compatibility.
llvm-svn: 67562
show more ...
|
| #
4bb96e9a |
| 13-Mar-2009 |
Bill Wendling <[email protected]> |
Revert r66920. It was causing failures in the self-hosting buildbot (in release mode).
Running /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvmCore/test/BugPoint/dg.exp ... FAIL: /Volumes/Sandbox
Revert r66920. It was causing failures in the self-hosting buildbot (in release mode).
Running /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvmCore/test/BugPoint/dg.exp ... FAIL: /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvmCore/test/BugPoint/crash-narrowfunctiontest.ll Failed with signal(SIGBUS) at line 1 while running: bugpoint /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvmCore/test/BugPoint/crash-narrowfunctiontest.ll -bugpoint-crashcalls -silence-passes > /dev/null 0 bugpoint 0x0035dd25 llvm::sys::SetInterruptFunction(void (*)()) + 85 1 bugpoint 0x0035e382 llvm::sys::RemoveFileOnSignal(llvm::sys::Path const&, std::string*) + 706 2 libSystem.B.dylib 0x92f112bb _sigtramp + 43 3 libSystem.B.dylib 0xffffffff _sigtramp + 1829694831 4 bugpoint 0x00021d1c main + 92 5 bugpoint 0x00002106 start + 54 6 bugpoint 0x00000004 start + 18446744073709543220 Stack dump: 0. Program arguments: bugpoint /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvmCore/test/BugPoint/crash-narrowfunctiontest.ll -bugpoint-crashcalls -silence-passes
FAIL: /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvmCore/test/BugPoint/misopt-basictest.ll Failed with signal(SIGBUS) at line 1 while running: bugpoint /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvmCore/test/BugPoint/misopt-basictest.ll -dce -bugpoint-deletecalls -simplifycfg -silence-passes 0 bugpoint 0x0035dd25 llvm::sys::SetInterruptFunction(void (*)()) + 85 1 bugpoint 0x0035e382 llvm::sys::RemoveFileOnSignal(llvm::sys::Path const&, std::string*) + 706 2 libSystem.B.dylib 0x92f112bb _sigtramp + 43 3 libSystem.B.dylib 0xffffffff _sigtramp + 1829694831 4 bugpoint 0x00021d1c main + 92 5 bugpoint 0x00002106 start + 54 6 bugpoint 0x00000006 start + 18446744073709543222 Stack dump: 0. Program arguments: bugpoint /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvmCore/test/BugPoint/misopt-basictest.ll -dce -bugpoint-deletecalls -simplifycfg -silence-passes
FAIL: /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvmCore/test/BugPoint/remove_arguments_test.ll Failed with signal(SIGBUS) at line 1 while running: bugpoint /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvmCore/test/BugPoint/remove_arguments_test.ll -bugpoint-crashcalls -silence-passes 0 bugpoint 0x0035dd25 llvm::sys::SetInterruptFunction(void (*)()) + 85 1 bugpoint 0x0035e382 llvm::sys::RemoveFileOnSignal(llvm::sys::Path const&, std::string*) + 706 2 libSystem.B.dylib 0x92f112bb _sigtramp + 43 3 libSystem.B.dylib 0xffffffff _sigtramp + 1829694831 4 bugpoint 0x00021d1c main + 92 5 bugpoint 0x00002106 start + 54 Stack dump: 0. Program arguments: bugpoint /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvmCore/test/BugPoint/remove_arguments_test.ll -bugpoint-crashcalls -silence-passes
--- Reverse-merging (from foreign repository) r66920 into '.': U include/llvm/Support/CallSite.h U include/llvm/Instructions.h U lib/Analysis/IPA/GlobalsModRef.cpp U lib/Analysis/IPA/Andersens.cpp U lib/Bitcode/Writer/BitcodeWriter.cpp U lib/VMCore/Instructions.cpp U lib/VMCore/Verifier.cpp U lib/VMCore/AsmWriter.cpp U lib/Transforms/Utils/LowerInvoke.cpp U lib/Transforms/Scalar/SimplifyCFGPass.cpp U lib/Transforms/IPO/PruneEH.cpp U lib/Transforms/IPO/DeadArgumentElimination.cpp
llvm-svn: 66953
show more ...
|
| #
258232fb |
| 13-Mar-2009 |
Gabor Greif <[email protected]> |
Second installment of "BasicBlock operands to the back" changes.
For InvokeInst now all arguments begin at op_begin(). The Callee, Cont and Fail are now faster to get by access relative to op_end().
Second installment of "BasicBlock operands to the back" changes.
For InvokeInst now all arguments begin at op_begin(). The Callee, Cont and Fail are now faster to get by access relative to op_end().
This patch introduces some temporary uglyness in CallSite. Next I'll bring CallInst up to a similar scheme and then the uglyness will magically vanish.
This patch also exposes all the reliance of the libraries on InvokeInst's operand ordering. I am thinking of taking care of that too.
llvm-svn: 66920
show more ...
|
| #
4581bebf |
| 11-Mar-2009 |
Duncan Sands <[email protected]> |
It makes no sense to have a ODR version of common linkage, so remove it.
llvm-svn: 66690
|
| #
e2881053 |
| 11-Mar-2009 |
Duncan Sands <[email protected]> |
Remove the one-definition-rule version of extern_weak linkage: this linkage type only applies to declarations, but ODR is only relevant to globals with definitions.
llvm-svn: 66650
|
| #
12da8ce3 |
| 07-Mar-2009 |
Duncan Sands <[email protected]> |
Introduce new linkage types linkonce_odr, weak_odr, common_odr and extern_weak_odr. These are the same as the non-odr versions, except that they indicate that the global will only be overridden by a
Introduce new linkage types linkonce_odr, weak_odr, common_odr and extern_weak_odr. These are the same as the non-odr versions, except that they indicate that the global will only be overridden by an *equivalent* global. In C, a function with weak linkage can be overridden by a function which behaves completely differently. This means that IP passes have to skip weak functions, since any deductions made from the function definition might be wrong, since the definition could be replaced by something completely different at link time. This is not allowed in C++, thanks to the ODR (One-Definition-Rule): if a function is replaced by another at link-time, then the new function must be the same as the original function. If a language knows that a function or other global can only be overridden by an equivalent global, it can give it the weak_odr linkage type, and the optimizers will understand that it is alright to make deductions based on the function body. The code generators on the other hand map weak and weak_odr linkage to the same thing.
llvm-svn: 66339
show more ...
|
|
Revision tags: llvmorg-2.5.0 |
|
| #
94aa38d5 |
| 12-Feb-2009 |
Nate Begeman <[email protected]> |
Add suppport for ConstantExprs of shufflevectors whose result type is not equal to the type of the vectors being shuffled.
llvm-svn: 64401
|
| #
1933b00c |
| 30-Jan-2009 |
Gabor Greif <[email protected]> |
use precise getters
llvm-svn: 63403
|
| #
4b79e47f |
| 16-Jan-2009 |
Gabor Greif <[email protected]> |
use specialized accessor instead of plain getOperand(0)
llvm-svn: 62330
|
| #
6de96a1b |
| 15-Jan-2009 |
Rafael Espindola <[email protected]> |
Add the private linkage.
llvm-svn: 62279
|
| #
6aa83bd4 |
| 07-Jan-2009 |
Gabor Greif <[email protected]> |
revert to functionally equivalent formulation
llvm-svn: 61895
|
| #
6ecd6f43 |
| 07-Jan-2009 |
Gabor Greif <[email protected]> |
use the obvious getters
llvm-svn: 61893
|
| #
af4c0bf4 |
| 19-Dec-2008 |
Chris Lattner <[email protected]> |
Add support for writing LLVM IR to a specified BitstreamWriter. Patch by Lukasz Janyst!
llvm-svn: 61251
|
| #
8d69f488 |
| 19-Dec-2008 |
Nick Lewycky <[email protected]> |
Commit missed files from nocapture change.
llvm-svn: 61240
|
| #
a397baea |
| 16-Dec-2008 |
Bill Wendling <[email protected]> |
Temporarily revert r61019, r61030, and r61040. These were breaking LLVM Release builds.
llvm-svn: 61094
|
| #
8d2ea183 |
| 15-Dec-2008 |
Nick Lewycky <[email protected]> |
It turns out that "align 1" and unaligned are different. Add a bias to the alignment attribute such that 0 means unaligned.
This will probably require a rebuild of llvm-gcc because of the change to
It turns out that "align 1" and unaligned are different. Add a bias to the alignment attribute such that 0 means unaligned.
This will probably require a rebuild of llvm-gcc because of the change to Attributes.h. If you see many test failures on "make check", please rebuild your llvm-gcc.
llvm-svn: 61030
show more ...
|
| #
ddffe620 |
| 15-Dec-2008 |
Nick Lewycky <[email protected]> |
Introducing nocapture, a parameter attribute for pointers to indicate that the callee will not introduce any new aliases of that pointer.
The attributes had all bits allocated already, so I decided
Introducing nocapture, a parameter attribute for pointers to indicate that the callee will not introduce any new aliases of that pointer.
The attributes had all bits allocated already, so I decided to collapse alignment. Alignment was previously stored as a 16-bit integer from bits 16 to 32 of the attribute, but it was required to be a power of 2. Now it's stored in log2 encoded form in five bits from 16 to 21. That gives us 11 more bits of space.
You may have already noticed that you only need four bits to encode a 16-bit power of two, so why five bits? Because the AsmParser accepted 32-bit alignments, even though we couldn't store them (they were silently discarded). Now we can store them in memory, but not in the bitcode.
The bitcode format was already storing these as 64-bit VBR integers. So, the bitcode format stays the same, keeping the alignment values stored as 16 bit raw values. There's some hideous code in the reader and writer that deals with this, waiting to be ripped out the moment we run out of bits again and have to replace the parameter attributes table encoding.
llvm-svn: 61019
show more ...
|
|
Revision tags: llvmorg-2.4.0 |
|
| #
f4be2468 |
| 23-Oct-2008 |
Daniel Dunbar <[email protected]> |
Make sure to set stdout to binary when writing bitcode files via std::ostream API.
llvm-svn: 58042
|
| #
890d0deb |
| 22-Oct-2008 |
Daniel Dunbar <[email protected]> |
Add raw_ostream versions of WriteBitcodeToFile and BitcodeWriterPass. - The old versions are still hanging around, but should be migrated away from.
llvm-svn: 57989
|
| #
54306fe4 |
| 09-Oct-2008 |
Dale Johannesen <[email protected]> |
Rename APFloat::convertToAPInt to bitcastToAPInt to make it clearer what the function does. No functional change.
llvm-svn: 57325
|
| #
4c758ea3 |
| 25-Sep-2008 |
Devang Patel <[email protected]> |
Large mechanical patch.
s/ParamAttr/Attribute/g s/PAList/AttrList/g s/FnAttributeWithIndex/AttributeWithIndex/g s/FnAttr/Attribute/g
This sets the stage - to implement function notes as function a
Large mechanical patch.
s/ParamAttr/Attribute/g s/PAList/AttrList/g s/FnAttributeWithIndex/AttributeWithIndex/g s/FnAttr/Attribute/g
This sets the stage - to implement function notes as function attributes and - to distinguish between function attributes and return value attributes.
This requires corresponding changes in llvm-gcc and clang.
llvm-svn: 56622
show more ...
|
| #
6402c723 |
| 24-Sep-2008 |
Devang Patel <[email protected]> |
s/ParamAttrsWithIndex/FnAttributeWithIndex/g
llvm-svn: 56535
|