| #
1d993270 |
| 09-May-2017 |
Serge Guelton <[email protected]> |
Suppress all uses of LLVM_END_WITH_NULL. NFC.
Use variadic templates instead of relying on <cstdarg> + sentinel.
This enforces better type checking and makes code more readable.
Differential revis
Suppress all uses of LLVM_END_WITH_NULL. NFC.
Use variadic templates instead of relying on <cstdarg> + sentinel.
This enforces better type checking and makes code more readable.
Differential revision: https://reviews.llvm.org/D32550
llvm-svn: 302572
show more ...
|
| #
ee4930b6 |
| 02-May-2017 |
Reid Kleckner <[email protected]> |
Re-land r301697 "[IR] Make add/remove Attributes use AttrBuilder instead of AttributeList"
This time, I fixed, built, and tested clang.
This reverts r301712.
llvm-svn: 301981
|
| #
e369bd92 |
| 01-May-2017 |
Sanjoy Das <[email protected]> |
Adapt to LLVM's rename of WeakVH to WeakTrackingVH; NFC
llvm-svn: 301815
|
| #
70a6051d |
| 01-May-2017 |
Sanjoy Das <[email protected]> |
Remove unneeded struct; NFC
Summary: Unless I'm missing something, the DeferredGlobal struct's GV field is unused, removing which makes the struct itself trivial.
Reviewers: rafael, chandlerc
Subs
Remove unneeded struct; NFC
Summary: Unless I'm missing something, the DeferredGlobal struct's GV field is unused, removing which makes the struct itself trivial.
Reviewers: rafael, chandlerc
Subscribers: mcrosier, llvm-commits
Differential Revision: https://reviews.llvm.org/D32691
llvm-svn: 301789
show more ...
|
|
Revision tags: llvmorg-4.0.1-rc1 |
|
| #
96d6ca7e |
| 27-Apr-2017 |
Vedant Kumar <[email protected]> |
[Profile] Add off-by-default -Wprofile-instr-missing warning
Clang warns that a profile is out-of-date if it can't find a profile record for any function in a TU. This warning became noisy after llv
[Profile] Add off-by-default -Wprofile-instr-missing warning
Clang warns that a profile is out-of-date if it can't find a profile record for any function in a TU. This warning became noisy after llvm started allowing dead-stripping of instrumented functions.
To fix this, this patch changes the existing profile out-of-date warning (-Wprofile-instr-out-of-date) so that it only complains about mismatched data. Further, it introduces a new, off-by-default warning about missing function data (-Wprofile-instr-missing).
Differential Revision: https://reviews.llvm.org/D28867
llvm-svn: 301570
show more ...
|
| #
a84ae0b9 |
| 26-Apr-2017 |
Sanjoy Das <[email protected]> |
Revert "Update to LLVM's use of WeakTrackingVH; NFC"
This reverts commit r301427.
llvm-svn: 301430
|
| #
2b5aa7c1 |
| 26-Apr-2017 |
Sanjoy Das <[email protected]> |
Update to LLVM's use of WeakTrackingVH; NFC
Summary: Depends on D32266
Reviewers: davide, dblaikie
Subscribers: mcrosier, llvm-commits
Differential Revision: https://reviews.llvm.org/D32270
llvm
Update to LLVM's use of WeakTrackingVH; NFC
Summary: Depends on D32266
Reviewers: davide, dblaikie
Subscribers: mcrosier, llvm-commits
Differential Revision: https://reviews.llvm.org/D32270
llvm-svn: 301427
show more ...
|
| #
34046bd3 |
| 24-Apr-2017 |
Piotr Padlewski <[email protected]> |
[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 <[email protected]> |
Fix assertion failure in codegen on non-template deduction guide.
llvm-svn: 300762
|
| #
cdd26794 |
| 18-Apr-2017 |
Reid Kleckner <[email protected]> |
Use less temporary AttributeLists NFC
llvm-svn: 300628
|
| #
7f7f323e |
| 17-Apr-2017 |
Yaxun Liu <[email protected]> |
CodeGen: Let lifetime intrinsic use alloca address space
Differential Revision: https://reviews.llvm.org/D31717
llvm-svn: 300485
|
| #
f021fab2 |
| 13-Apr-2017 |
Reid Kleckner <[email protected]> |
[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 <[email protected]> |
[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 <[email protected]> |
[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 <[email protected]> |
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 <[email protected]> |
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 <[email protected]> |
[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 <[email protected]> |
Move NumRegParameters Module Flag. NFCI.
llvm-svn: 299079
|
| #
835832d3 |
| 30-Mar-2017 |
Dean Michael Berris <[email protected]> |
[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 <[email protected]> |
[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 <[email protected]> |
Update Clang for LLVM rename AttributeSet -> AttributeList
llvm-svn: 298394
|
| #
dc205b3d |
| 21-Mar-2017 |
Peter Collingbourne <[email protected]> |
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 <[email protected]> |
[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 <[email protected]> |
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 <[email protected]> |
[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 ...
|