#
34046bd3 |
| 24-Apr-2017 |
Piotr Padlewski <piotr.padlewski@gmail.com> |
[Devirtualization] Emit invariant.group loads with empty group md
Summary: As discussed here http://lists.llvm.org/pipermail/llvm-dev/2017-January/109332.html having different groups doesn't solve t
[Devirtualization] Emit invariant.group loads with empty group md
Summary: As discussed here http://lists.llvm.org/pipermail/llvm-dev/2017-January/109332.html having different groups doesn't solve the problem entirly.
Reviewers: rjmccall, rsmith
Subscribers: amharc, cfe-commits
Differential Revision: https://reviews.llvm.org/D32110
llvm-svn: 301178
show more ...
|
#
ada0888a |
| 19-Apr-2017 |
Richard Smith <richard-llvm@metafoo.co.uk> |
Fix assertion failure in codegen on non-template deduction guide.
llvm-svn: 300762
|
#
cdd26794 |
| 18-Apr-2017 |
Reid Kleckner <rnk@google.com> |
Use less temporary AttributeLists NFC
llvm-svn: 300628
|
#
7f7f323e |
| 17-Apr-2017 |
Yaxun Liu <Yaxun.Liu@amd.com> |
CodeGen: Let lifetime intrinsic use alloca address space
Differential Revision: https://reviews.llvm.org/D31717
llvm-svn: 300485
|
#
f021fab2 |
| 13-Apr-2017 |
Reid Kleckner <rnk@google.com> |
[IR] Make getParamAttributes take argument numbers, not ArgNo+1
Add hasParamAttribute() and use it instead of hasAttribute(ArgNo+1, Kind) everywhere.
The fact that the AttributeList index for an ar
[IR] Make getParamAttributes take argument numbers, not ArgNo+1
Add hasParamAttribute() and use it instead of hasAttribute(ArgNo+1, Kind) everywhere.
The fact that the AttributeList index for an argument is ArgNo+1 should be a hidden implementation detail.
NFC
llvm-svn: 300272
show more ...
|
#
7f72033e |
| 13-Apr-2017 |
Reid Kleckner <rnk@google.com> |
[IR] Take func, ret, and arg attrs separately in AttributeList::get
This seems like a much more natural API, based on Derek Schuff's comments on r300015. It further hides the implementation detail o
[IR] Take func, ret, and arg attrs separately in AttributeList::get
This seems like a much more natural API, based on Derek Schuff's comments on r300015. It further hides the implementation detail of AttributeList that function attributes come last and appear at index ~0U, which is easy for the user to screw up. git diff says it saves code as well: 97 insertions(+), 137 deletions(-)
This also makes it easier to change the implementation, which I want to do next.
llvm-svn: 300153
show more ...
|
#
c2cb5600 |
| 12-Apr-2017 |
Reid Kleckner <rnk@google.com> |
[IR] Add AttributeSet to hide AttributeSetNode* again, NFC
Summary: For now, it just wraps AttributeSetNode*. Eventually, it will hold AvailableAttrs as an inline bitset, and adding and removing enu
[IR] Add AttributeSet to hide AttributeSetNode* again, NFC
Summary: For now, it just wraps AttributeSetNode*. Eventually, it will hold AvailableAttrs as an inline bitset, and adding and removing enum attributes will be super cheap.
This sinks AttributeSetNode back down to lib/IR/AttributeImpl.h.
Reviewers: pete, chandlerc
Subscribers: llvm-commits, jfb
Differential Revision: https://reviews.llvm.org/D31940
llvm-svn: 300014
show more ...
|
#
1ac9c98e |
| 11-Apr-2017 |
David Blaikie <dblaikie@gmail.com> |
Modular Codegen: Support homing debug info for types in modular objects
Matching the function-homing support for modular codegen. Any type implicitly (implicit template specializations) or explicitl
Modular Codegen: Support homing debug info for types in modular objects
Matching the function-homing support for modular codegen. Any type implicitly (implicit template specializations) or explicitly defined in a module is attached to that module's object file and omitted elsewhere (only a declaration used if necessary for references).
llvm-svn: 299987
show more ...
|
#
eb9dd5b8 |
| 10-Apr-2017 |
Reid Kleckner <rnk@google.com> |
Reland "[IR] Make AttributeSetNode public, avoid temporary AttributeList copies"
This re-lands r299875.
I introduced a bug in Clang code responsible for replacing K&R, no prototype declarations wit
Reland "[IR] Make AttributeSetNode public, avoid temporary AttributeList copies"
This re-lands r299875.
I introduced a bug in Clang code responsible for replacing K&R, no prototype declarations with a real function definition with a prototype. The bug was here:
// Collect any return attributes from the call. - if (oldAttrs.hasAttributes(llvm::AttributeList::ReturnIndex)) - newAttrs.push_back(llvm::AttributeList::get(newFn->getContext(), - oldAttrs.getRetAttributes())); + newAttrs.push_back(oldAttrs.getRetAttributes());
Previously getRetAttributes() carried AttributeList::ReturnIndex in its AttributeList. Now that we return the AttributeSetNode* directly, it no longer carries that index, and we call this overload with a single node: AttributeList::get(LLVMContext&, ArrayRef<AttributeSetNode*>)
That aborted with an assertion on x86_32 targets. I added an explicit triple to the test and added CHECKs to help find issues like this in the future sooner.
llvm-svn: 299899
show more ...
|
#
1a8030e7 |
| 07-Apr-2017 |
Evgeniy Stepanov <eugeni.stepanov@gmail.com> |
[cfi] Emit __cfi_check stub in the frontend.
Previously __cfi_check was created in LTO optimization pipeline, which means LLD has no way of knowing about the existence of this symbol without rescann
[cfi] Emit __cfi_check stub in the frontend.
Previously __cfi_check was created in LTO optimization pipeline, which means LLD has no way of knowing about the existence of this symbol without rescanning the LTO output object. As a result, LLD fails to export __cfi_check, even when given --export-dynamic-symbol flag.
llvm-svn: 299806
show more ...
|
#
741dea00 |
| 30-Mar-2017 |
Nirav Dave <niravd@google.com> |
Move NumRegParameters Module Flag. NFCI.
llvm-svn: 299079
|
#
835832d3 |
| 30-Mar-2017 |
Dean Michael Berris <dberris@google.com> |
[XRay] Add -fxray-{always,never}-instrument= flags to clang
Summary: The -fxray-always-instrument= and -fxray-never-instrument= flags take filenames that are used to imbue the XRay instrumentation a
[XRay] Add -fxray-{always,never}-instrument= flags to clang
Summary: The -fxray-always-instrument= and -fxray-never-instrument= flags take filenames that are used to imbue the XRay instrumentation attributes using a whitelist mechanism (similar to the sanitizer special cases list). We use the same syntax and semantics as the sanitizer blacklists files in the implementation.
As implemented, we respect the attributes that are already defined in the source file (i.e. those that have the [[clang::xray_{always,never}_instrument]] attributes) before applying the always/never instrument lists.
Reviewers: rsmith, chandlerc
Subscribers: jfb, mgorny, cfe-commits
Differential Revision: https://reviews.llvm.org/D30388
llvm-svn: 299041
show more ...
|
#
a8fbef44 |
| 23-Mar-2017 |
Alex Lorenz <arphaman@gmail.com> |
[CodeGen] Emit a CoreFoundation link guard when @available is used
After r297760, __isOSVersionAtLeast in compiler-rt loads the CoreFoundation symbols at runtime. This means that `@available` will a
[CodeGen] Emit a CoreFoundation link guard when @available is used
After r297760, __isOSVersionAtLeast in compiler-rt loads the CoreFoundation symbols at runtime. This means that `@available` will always fail when used in a binary without a linked CoreFoundation.
This commit forces Clang to emit a reference to a CoreFoundation symbol when `@available` is used to ensure that linking will fail when CoreFoundation isn't linked with the build product.
rdar://31039592
Differential Revision: https://reviews.llvm.org/D30977
llvm-svn: 298588
show more ...
|
#
de86482c |
| 21-Mar-2017 |
Reid Kleckner <rnk@google.com> |
Update Clang for LLVM rename AttributeSet -> AttributeList
llvm-svn: 298394
|
#
dc205b3d |
| 21-Mar-2017 |
Peter Collingbourne <peter@pcc.me.uk> |
IRGen: Do not set dllexport on declarations.
Setting dllexport on a declaration has no effect, as we do not emit export directives for declarations.
Part of the fix for PR32334.
Differential Revis
IRGen: Do not set dllexport on declarations.
Setting dllexport on a declaration has no effect, as we do not emit export directives for declarations.
Part of the fix for PR32334.
Differential Revision: https://reviews.llvm.org/D31162
llvm-svn: 298330
show more ...
|
#
8497ef40 |
| 18-Mar-2017 |
Nirav Dave <niravd@google.com> |
[X86] Add NumRegisterParameters Module Flag.
Reviewers: rnk, mkuper
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D27051
llvm-svn: 298177
|
Revision tags: llvmorg-4.0.0, llvmorg-4.0.0-rc4 |
|
#
5ad74075 |
| 02-Mar-2017 |
John McCall <rjmccall@apple.com> |
Promote ConstantInitBuilder to be a public CodeGen API; it's a generally useful utility for other frontends. NFC.
llvm-svn: 296806
|
Revision tags: llvmorg-4.0.0-rc3 |
|
#
cac8ce06 |
| 15-Feb-2017 |
Hans Wennborg <hans@hanshq.net> |
[dllimport] Check for dtor references in functions
Destructor references are not modelled explicitly in the AST. This adds checks for destructor calls due to variable definitions and temporaries.
I
[dllimport] Check for dtor references in functions
Destructor references are not modelled explicitly in the AST. This adds checks for destructor calls due to variable definitions and temporaries.
If a dllimport function references a non-dllimport destructor, it must not be emitted available_externally, as the referenced destructor might live across the DLL boundary and isn't exported.
llvm-svn: 295258
show more ...
|
#
6c3d625f |
| 15-Feb-2017 |
Hans Wennborg <hans@hanshq.net> |
[dllimport] Look through typedefs and arrays in HasNonDllImportDtor
The function is used to check whether a type is a class with non-dllimport destructor. It needs to look through typedefs and array
[dllimport] Look through typedefs and arrays in HasNonDllImportDtor
The function is used to check whether a type is a class with non-dllimport destructor. It needs to look through typedefs and array types.
llvm-svn: 295257
show more ...
|
Revision tags: llvmorg-4.0.0-rc2 |
|
#
9ffe5a35 |
| 30-Jan-2017 |
David Blaikie <dblaikie@gmail.com> |
Prototype of modules codegen
First pass at generating weak definitions of inline functions from module files (& skipping (-O0) or emitting available_externally (optimizations) definitions where thos
Prototype of modules codegen
First pass at generating weak definitions of inline functions from module files (& skipping (-O0) or emitting available_externally (optimizations) definitions where those modules are used).
External functions defined in modules are emitted into the modular object file as well (this may turn an existing ODR violation (if that module were imported into multiple translations) into valid/linkable code).
Internal symbols (static functions, for example) are not correctly supported yet. The symbol will be produced, internal, in the modular object - unreferenceable from the users.
Reviewers: rsmith
Differential Revision: https://reviews.llvm.org/D28845
llvm-svn: 293456
show more ...
|
#
251c204e |
| 23-Jan-2017 |
Hans Wennborg <hans@hanshq.net> |
Re-commit "Don't inline dllimport functions referencing non-imported methods"
This re-commits r292522 with the addition that it also handles calls through pointer to member functions without crashin
Re-commit "Don't inline dllimport functions referencing non-imported methods"
This re-commits r292522 with the addition that it also handles calls through pointer to member functions without crashing.
llvm-svn: 292856
show more ...
|
#
25019ca8 |
| 20-Jan-2017 |
Reid Kleckner <rnk@google.com> |
Revert "Don't inline dllimport functions referencing non-imported methods"
This reverts commit r292522. It appears to be causing crashes in builds using dllimport.
llvm-svn: 292643
|
#
7c650777 |
| 19-Jan-2017 |
Hans Wennborg <hans@hanshq.net> |
Don't inline dllimport functions referencing non-imported methods
This is another follow-up to r246338. I had assumed methods were already handled by the AST visitor, but turns out they weren't.
ll
Don't inline dllimport functions referencing non-imported methods
This is another follow-up to r246338. I had assumed methods were already handled by the AST visitor, but turns out they weren't.
llvm-svn: 292522
show more ...
|
#
75ed8ad6 |
| 18-Jan-2017 |
David Blaikie <dblaikie@gmail.com> |
Remove now redundant code that ensured debug info for class definitions was emitted under certain circumstances
Introduced in r181561 - it may've been subsumed by work done to allow emission of decl
Remove now redundant code that ensured debug info for class definitions was emitted under certain circumstances
Introduced in r181561 - it may've been subsumed by work done to allow emission of declarations for vtable types while still emitting some of their member functions correctly for those declarations. Whatever the reason, the tests pass without this code now.
llvm-svn: 292439
show more ...
|
Revision tags: llvmorg-4.0.0-rc1 |
|
#
839f215e |
| 17-Jan-2017 |
Dan Gohman <dan433584@gmail.com> |
[WebAssembly] Add minimal support for the new wasm object format triple.
llvm-svn: 292269
|