| #
647cffba |
| 01-Apr-2009 |
Chris Lattner <[email protected]> |
fix a serious regression I introduced in my previous patch.
llvm-svn: 68173
|
| #
2d8cd80e |
| 31-Mar-2009 |
Chris Lattner <[email protected]> |
reimplement BitcodeReaderValueList in terms of WeakVH instead of making it be an LLVM IR User object.
llvm-svn: 68156
|
| #
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 ...
|
| #
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
|
| #
fa4e35ac |
| 03-Feb-2009 |
Chris Lattner <[email protected]> |
fix a bitcode reader bug where it can't handle extractelement correctly: the index of the value being extracted is always an i32. This fixes PR3465
llvm-svn: 63597
|
| #
6de96a1b |
| 15-Jan-2009 |
Rafael Espindola <[email protected]> |
Add the private linkage.
llvm-svn: 62279
|
| #
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
|
| #
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 |
|
| #
25f0106f |
| 10-Nov-2008 |
Mon P Wang <[email protected]> |
Added support for the following definition of shufflevector <result> = shufflevector <n x <ty>> <v1>, <n x <ty>> <v2>, <m x i32> <mask>
llvm-svn: 58964
|
| #
4744ed5f |
| 05-Oct-2008 |
Chris Lattner <[email protected]> |
make the autoupgrade code for ret attributes dramatically simpler and actually work. We can now read the llvm 2.3 bc file from PR2849
llvm-svn: 57122
|
| #
a05633e1 |
| 26-Sep-2008 |
Devang Patel <[email protected]> |
Now Attributes are divided in three groups - return attributes - inreg, zext and sext - parameter attributes - function attributes - nounwind, readonly, readnone, noreturn
Return attributes use 0 as
Now Attributes are divided in three groups - return attributes - inreg, zext and sext - parameter attributes - function attributes - nounwind, readonly, readnone, noreturn
Return attributes use 0 as the index. Function attributes use ~0U as the index.
This patch requires corresponding changes in llvm-gcc and clang.
llvm-svn: 56704
show more ...
|
| #
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
|
| #
82fed670 |
| 23-Sep-2008 |
Devang Patel <[email protected]> |
Use parameter attribute store (soon to be renamed) for Function Notes also. Function notes are stored at index ~0.
llvm-svn: 56511
|
| #
c5d2892e |
| 16-Sep-2008 |
Dan Gohman <[email protected]> |
Re-enables the new vector select in the bitcode reader, by modifying the bitcode reader/writer as follows:
- add and use new bitcode FUNC_CODE_INST_VSELECT to handle the llvm select opcode using eit
Re-enables the new vector select in the bitcode reader, by modifying the bitcode reader/writer as follows:
- add and use new bitcode FUNC_CODE_INST_VSELECT to handle the llvm select opcode using either i1 or [N x i1] as the selector. - retain old BITCODE FUNC_CODE_INST_SELECT in the bitcode reader to handle select on i1 for backwards compatibility with existing bitcode files. - re-enable the vector-select.ll test program.
Also, rename the recently added bitcode opcode FUNC_CODE_INST_VCMP to FUNC_CODE_INST_CMP2 and make the bitcode writer use it to handle fcmp/icmp on scalars or vectors. In the bitcode writer, use FUNC_CODE_INST_CMP for vfcmp/vicmp only. In the bitcode reader, have FUNC_CODE_INST_CMP handle icmp/fcmp returning bool, for backwards compatibility with existing bitcode files.
Patch by Preston Gurd!
llvm-svn: 56233
show more ...
|
| #
7164e9a7 |
| 09-Sep-2008 |
Dan Gohman <[email protected]> |
Temporarily disable vector select in the bitcode reader. The way it handles the type of the condition is breaking plain scalar select in the case that the value is a forward-reference.
llvm-svn: 559
Temporarily disable vector select in the bitcode reader. The way it handles the type of the condition is breaking plain scalar select in the case that the value is a forward-reference.
llvm-svn: 55976
show more ...
|
| #
c579d978 |
| 09-Sep-2008 |
Dan Gohman <[email protected]> |
Extend the vcmp/fcmp LLVM IR instructions to take vectors as arguments and, if so, to return a vector of boolean as a result;
Extend the select LLVM IR instruction to allow you to specify a result t
Extend the vcmp/fcmp LLVM IR instructions to take vectors as arguments and, if so, to return a vector of boolean as a result;
Extend the select LLVM IR instruction to allow you to specify a result type which is a vector of boolean, in which case the result will be an element-wise selection instead of choosing one vector or the other; and
Update LangRef.html to describe these changes.
This patch was contributed by Preston Gurd!
llvm-svn: 55969
show more ...
|
| #
ca9d93e6 |
| 02-Sep-2008 |
Devang Patel <[email protected]> |
Read and write function notes.
llvm-svn: 55657
|
| #
479c5d9e |
| 21-Aug-2008 |
Chris Lattner <[email protected]> |
Switch from an O(n) method to an O(1) method for changing non-constant operands.
llvm-svn: 55127
|
| #
74429938 |
| 21-Aug-2008 |
Chris Lattner <[email protected]> |
recommit bcreader, handling packed structs correctly. Apparently people want fast *and* correct. Sheesh.
llvm-svn: 55102
|
| #
ad1a1de1 |
| 21-Aug-2008 |
Daniel Dunbar <[email protected]> |
Revert 55090, regressions in: - Postgres - llvm-test/SingleSource/UnitTests/{2006-01-23-InitializedBitField, 2004-11-28-GlobalBoolLayout, 2003-05-02-DependentPHI}
llvm-svn: 55100
|