| #
7157bb76 |
| 14-Jan-2014 |
Nico Rieck <[email protected]> |
Decouple dllexport/dllimport from linkage
Representing dllexport/dllimport as distinct linkage types prevents using these attributes on templates and inline functions.
Instead of introducing furthe
Decouple dllexport/dllimport from linkage
Representing dllexport/dllimport as distinct linkage types prevents using these attributes on templates and inline functions.
Instead of introducing further mixed linkage types to include linkonce and weak ODR, the old import/export linkage types are replaced with a new separate visibility-like specifier:
define available_externally dllimport void @f() {} @Var = dllexport global i32 1, align 4
Linkage for dllexported globals and functions is now equal to their linkage without dllexport. Imported globals and functions must be either declarations with external linkage, or definitions with AvailableExternallyLinkage.
llvm-svn: 199218
show more ...
|
| #
9d2e0df0 |
| 14-Jan-2014 |
Nico Rieck <[email protected]> |
Revert "Decouple dllexport/dllimport from linkage"
Revert this for now until I fix an issue in Clang with it.
This reverts commit r199204.
llvm-svn: 199207
|
| #
e43aaf79 |
| 14-Jan-2014 |
Nico Rieck <[email protected]> |
Decouple dllexport/dllimport from linkage
Representing dllexport/dllimport as distinct linkage types prevents using these attributes on templates and inline functions.
Instead of introducing furthe
Decouple dllexport/dllimport from linkage
Representing dllexport/dllimport as distinct linkage types prevents using these attributes on templates and inline functions.
Instead of introducing further mixed linkage types to include linkonce and weak ODR, the old import/export linkage types are replaced with a new separate visibility-like specifier:
define available_externally dllimport void @f() {} @Var = dllexport global i32 1, align 4
Linkage for dllexported globals and functions is now equal to their linkage without dllexport. Imported globals and functions must be either declarations with external linkage, or definitions with AvailableExternallyLinkage.
llvm-svn: 199204
show more ...
|
| #
5b6c1e8e |
| 13-Jan-2014 |
Rafael Espindola <[email protected]> |
Update getLazyBitcodeModule to use ErrorOr for error handling.
llvm-svn: 199125
|
|
Revision tags: llvmorg-3.4.0 |
|
| #
a534a381 |
| 19-Dec-2013 |
Reid Kleckner <[email protected]> |
Begin adding docs and IR-level support for the inalloca attribute
The inalloca attribute is designed to support passing C++ objects by value in the Microsoft C++ ABI. It behaves the same as byval,
Begin adding docs and IR-level support for the inalloca attribute
The inalloca attribute is designed to support passing C++ objects by value in the Microsoft C++ ABI. It behaves the same as byval, except that it always implies that the argument is in memory and that the bytes are never copied. This attribute allows the caller to take the address of an outgoing argument's memory and execute arbitrary code to store into it.
This patch adds basic IR support, docs, and verification. It does not attempt to implement any lowering or fix any possibly broken transforms.
When this patch lands, a complete description of this feature should appear at http://llvm.org/docs/InAlloca.html .
Differential Revision: http://llvm-reviews.chandlerc.com/D2173
llvm-svn: 197645
show more ...
|
|
Revision tags: llvmorg-3.4.0-rc3, llvmorg-3.4.0-rc2 |
|
| #
8b4306ce |
| 02-Dec-2013 |
Manman Ren <[email protected]> |
Debug Info: drop debug info via upgrading path if version number does not match.
Add a helper function getDebugInfoVersionFromModule to return the debug info version number for a module.
"Verifier/
Debug Info: drop debug info via upgrading path if version number does not match.
Add a helper function getDebugInfoVersionFromModule to return the debug info version number for a module.
"Verifier/module-flags-1.ll" checks for verification errors. It will seg fault when calling getDebugInfoVersionFromModule because of the incorrect format for module flags in the testing case. We make getModuleFlagsMetadata more robust by checking for error conditions.
PR17982
llvm-svn: 196158
show more ...
|
|
Revision tags: llvmorg-3.4.0-rc1 |
|
| #
3aa9b039 |
| 18-Nov-2013 |
Matt Arsenault <[email protected]> |
Fix spacing, forward declare order.
llvm-svn: 194985
|
| #
b03bd4d9 |
| 15-Nov-2013 |
Matt Arsenault <[email protected]> |
Add addrspacecast instruction.
Patch by Michele Scandale!
llvm-svn: 194760
|
| #
e9f36afe |
| 12-Nov-2013 |
Reid Kleckner <[email protected]> |
Extract a bc attr parsing helper that returns Attribute::None on error
The parsing method still returns llvm::error_code for consistency with other parsing methods. Minor cleanup, no functionality
Extract a bc attr parsing helper that returns Attribute::None on error
The parsing method still returns llvm::error_code for consistency with other parsing methods. Minor cleanup, no functionality change.
llvm-svn: 194437
show more ...
|
| #
2b11ad4f |
| 05-Nov-2013 |
Rafael Espindola <[email protected]> |
Use error_code in GVMaterializer.
They just propagate out the bitcode reader error, so we don't need a new enum.
llvm-svn: 194091
|
| #
7d712031 |
| 05-Nov-2013 |
Rafael Espindola <[email protected]> |
Convert FindFunctionInStream to return an error_code.
llvm-svn: 194084
|
| #
77db1636 |
| 05-Nov-2013 |
Benjamin Kramer <[email protected]> |
Silence GCC warning about dropping off a fully covered switch.
llvm-svn: 194077
|
| #
48da4f46 |
| 04-Nov-2013 |
Rafael Espindola <[email protected]> |
Change BitcodeReader to use error_code instead of bool + string.
In order to create an ObjectFile implementation that uses bitcode files, we need to propagate the bitcode errors to the ObjectFile in
Change BitcodeReader to use error_code instead of bool + string.
In order to create an ObjectFile implementation that uses bitcode files, we need to propagate the bitcode errors to the ObjectFile interface, so we need to convert it to use the same error handling as ObjectFile: error_code.
llvm-svn: 193996
show more ...
|
| #
716e7405 |
| 01-Nov-2013 |
Rafael Espindola <[email protected]> |
Remove linkonce_odr_auto_hide.
linkonce_odr_auto_hide was in incomplete attempt to implement a way for the linker to hide symbols that are known to be available in every TU and whose addresses are n
Remove linkonce_odr_auto_hide.
linkonce_odr_auto_hide was in incomplete attempt to implement a way for the linker to hide symbols that are known to be available in every TU and whose addresses are not relevant for a particular DSO.
It was redundant in that it all its uses are equivalent to linkonce_odr+unnamed_addr. Unlike those, it has never been connected to clang or llvm's optimizers, so it was effectively dead.
Given that nothing produces it, this patch just nukes it (other than the llvm-c enum value).
llvm-svn: 193865
show more ...
|
| #
26b43cac |
| 31-Oct-2013 |
Rafael Espindola <[email protected]> |
Fix a use after free on invalid input.
llvm-svn: 193737
|
| #
2e1890e1 |
| 27-Oct-2013 |
Shuxin Yang <[email protected]> |
Revert r193251 : Use address-taken to disambiguate global variable and indirect memops.
llvm-svn: 193489
|
| #
e4fb3759 |
| 23-Oct-2013 |
Shuxin Yang <[email protected]> |
Use address-taken to disambiguate global variable and indirect memops.
Major steps include: 1). introduces a not-addr-taken bit-field in GlobalVariable 2). GlobalOpt pass sets "not-address-taken"
Use address-taken to disambiguate global variable and indirect memops.
Major steps include: 1). introduces a not-addr-taken bit-field in GlobalVariable 2). GlobalOpt pass sets "not-address-taken" if it proves a global varirable dosen't have its address taken. 3). AA use this info for disambiguation.
llvm-svn: 193251
show more ...
|
| #
209b17cd |
| 28-Sep-2013 |
Manman Ren <[email protected]> |
AutoUpgrade: upgrade from scalar TBAA format to struct-path aware TBAA format.
We treat TBAA tags as struct-path aware TBAA format when the first operand is a MDNode and the tag has 3 or more operan
AutoUpgrade: upgrade from scalar TBAA format to struct-path aware TBAA format.
We treat TBAA tags as struct-path aware TBAA format when the first operand is a MDNode and the tag has 3 or more operands.
llvm-svn: 191593
show more ...
|
| #
3fa50f9b |
| 16-Sep-2013 |
Peter Collingbourne <[email protected]> |
Implement function prefix data as an IR feature.
Previous discussion: http://lists.cs.uiuc.edu/pipermail/llvmdev/2013-July/063909.html
Differential Revision: http://llvm-reviews.chandlerc.com/D1191
Implement function prefix data as an IR feature.
Previous discussion: http://lists.cs.uiuc.edu/pipermail/llvmdev/2013-July/063909.html
Differential Revision: http://llvm-reviews.chandlerc.com/D1191
llvm-svn: 190773
show more ...
|
| #
1a6e7708 |
| 12-Sep-2013 |
Joe Abbey <[email protected]> |
Patch provide by Tom Roeder!
Reviewed by Joe Abbey and Tobias Grosser
Here is a patch that fixes decoding of CE_SELECT in BitcodeReader, along with a simple test case. The problem in the current co
Patch provide by Tom Roeder!
Reviewed by Joe Abbey and Tobias Grosser
Here is a patch that fixes decoding of CE_SELECT in BitcodeReader, along with a simple test case. The problem in the current code is that it generates but doesn't accept bitcode that uses vectors for the first element of a select in this context.
llvm-svn: 190634
show more ...
|
| #
e407736a |
| 09-Sep-2013 |
Bob Wilson <[email protected]> |
Revert patches to add case-range support for PR1255.
The work on this project was left in an unfinished and inconsistent state. Hopefully someone will eventually get a chance to implement this featu
Revert patches to add case-range support for PR1255.
The work on this project was left in an unfinished and inconsistent state. Hopefully someone will eventually get a chance to implement this feature, but in the meantime, it is better to put things back the way the were. I have left support in the bitcode reader to handle the case-range bitcode format, so that we do not lose bitcode compatibility with the llvm 3.3 release.
This reverts the following commits: 155464, 156374, 156377, 156613, 156704, 156757, 156804 156808, 156985, 157046, 157112, 157183, 157315, 157384, 157575, 157576, 157586, 157612, 157810, 157814, 157815, 157880, 157881, 157882, 157884, 157887, 157901, 158979, 157987, 157989, 158986, 158997, 159076, 159101, 159100, 159200, 159201, 159207, 159527, 159532, 159540, 159583, 159618, 159658, 159659, 159660, 159661, 159703, 159704, 160076, 167356, 172025, 186736
llvm-svn: 190328
show more ...
|
| #
377496bb |
| 23-Aug-2013 |
Andrea Di Biagio <[email protected]> |
Add function attribute 'optnone'.
This function attribute indicates that the function is not optimized by any optimization or code generator passes with the exception of interprocedural optimizatio
Add function attribute 'optnone'.
This function attribute indicates that the function is not optimized by any optimization or code generator passes with the exception of interprocedural optimization passes.
llvm-svn: 189101
show more ...
|
| #
0a8e12fd |
| 26-Jul-2013 |
Tobias Grosser <[email protected]> |
Make .bc en/decoding of AttrKind stable
The bitcode representation attribute kinds are encoded into / decoded from should be independent of the current set of LLVM attributes and their position in t
Make .bc en/decoding of AttrKind stable
The bitcode representation attribute kinds are encoded into / decoded from should be independent of the current set of LLVM attributes and their position in the AttrKind enum. This patch explicitly encodes attributes to fixed bitcode values.
With this patch applied, LLVM does not silently misread attributes written by LLVM 3.3. We also enhance the decoding slightly such that an error message is printed if an unknown AttrKind encoding was dected.
Bonus: Dropping bitcode attributes from AttrKind is now easy, as old AttrKinds do not need to be kept to support the Bitcode reader. llvm-svn: 187186
show more ...
|
|
Revision tags: llvmorg-3.3.1-rc1, llvmorg-3.3.0, llvmorg-3.3.0-rc3 |
|
| #
534d3a46 |
| 24-May-2013 |
Benjamin Kramer <[email protected]> |
Remove the Copied parameter from MemoryObject::readBytes.
There was exactly one caller using this API right, the others were relying on specific behavior of the default implementation. Since it's to
Remove the Copied parameter from MemoryObject::readBytes.
There was exactly one caller using this API right, the others were relying on specific behavior of the default implementation. Since it's too hard to use it right just remove it and standardize on the default behavior.
Defines away PR16132.
llvm-svn: 182636
show more ...
|
|
Revision tags: llvmorg-3.3.0-rc2, llvmorg-3.3.0-rc1 |
|
| #
3238fb75 |
| 05-May-2013 |
Dmitri Gribenko <[email protected]> |
Add ArrayRef constructor from None, and do the cleanups that this constructor enables
Patch by Robert Wilhelm.
llvm-svn: 181138
|