#
277800a6 |
| 26-Apr-2009 |
Chris Lattner <sabre@nondot.org> |
Make a major API change to BitstreamReader: split all the reading state out of the BitstreamReader class into a BitstreamCursor class. Doing this allows the client to have multiple cursors into the s
Make a major API change to BitstreamReader: split all the reading state out of the BitstreamReader class into a BitstreamCursor class. Doing this allows the client to have multiple cursors into the same file, each with potentially different live block stacks and abbreviation records.
llvm-svn: 70157
show more ...
|
#
184f1be4 |
| 13-Apr-2009 |
Chris Lattner <sabre@nondot.org> |
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 ...
|
#
b9e07fd2 |
| 06-Apr-2009 |
Chris Lattner <sabre@nondot.org> |
Teach llvm-bcanalyzer to skip over the header we use on LLVM IR files.
llvm-svn: 68458
|
#
49f89195 |
| 04-Apr-2009 |
Nick Lewycky <nicholas@mxc.ca> |
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 ...
|
#
647cffba |
| 01-Apr-2009 |
Chris Lattner <sabre@nondot.org> |
fix a serious regression I introduced in my previous patch.
llvm-svn: 68173
|
#
2d8cd80e |
| 31-Mar-2009 |
Chris Lattner <sabre@nondot.org> |
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 <dalej@apple.com> |
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 <baldrick@free.fr> |
It makes no sense to have a ODR version of common linkage, so remove it.
llvm-svn: 66690
|
#
e2881053 |
| 11-Mar-2009 |
Duncan Sands <baldrick@free.fr> |
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 <baldrick@free.fr> |
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 <natebegeman@mac.com> |
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 <sabre@nondot.org> |
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 <rafael.espindola@gmail.com> |
Add the private linkage.
llvm-svn: 62279
|
#
8d69f488 |
| 19-Dec-2008 |
Nick Lewycky <nicholas@mxc.ca> |
Commit missed files from nocapture change.
llvm-svn: 61240
|
#
a397baea |
| 16-Dec-2008 |
Bill Wendling <isanbard@gmail.com> |
Temporarily revert r61019, r61030, and r61040. These were breaking LLVM Release builds.
llvm-svn: 61094
|
#
ddffe620 |
| 15-Dec-2008 |
Nick Lewycky <nicholas@mxc.ca> |
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 <wangmp@apple.com> |
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 <sabre@nondot.org> |
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 <dpatel@apple.com> |
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 <dpatel@apple.com> |
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 <dpatel@apple.com> |
s/ParamAttrsWithIndex/FnAttributeWithIndex/g
llvm-svn: 56535
|
#
82fed670 |
| 23-Sep-2008 |
Devang Patel <dpatel@apple.com> |
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 <gohman@apple.com> |
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 <gohman@apple.com> |
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 <gohman@apple.com> |
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 ...
|