| #
4516dc1c |
| 15-Nov-2019 |
Akira Hatanaka <[email protected]> |
Don't add optnone or noinline if the function is already marked as always_inline.
The assertion in SetLLVMFunctionAttributesForDefinition used to fail when there was attribute OptimizeNone on the AS
Don't add optnone or noinline if the function is already marked as always_inline.
The assertion in SetLLVMFunctionAttributesForDefinition used to fail when there was attribute OptimizeNone on the AST function and attribute always_inline on the IR function. This happens because base destructors are annotated with always_inline when the code is compiled with -fapple-kext (see r124757).
rdar://problem/57169694
show more ...
|
| #
4c1a1d3c |
| 14-Nov-2019 |
Reid Kleckner <[email protected]> |
Add missing includes needed to prune LLVMContext.h include, NFC
These are a pre-requisite to removing #include "llvm/Support/Options.h" from LLVMContext.h: https://reviews.llvm.org/D70280
|
| #
2073dd2d |
| 04-Nov-2019 |
Adrian Prantl <[email protected]> |
Redeclare Objective-C property accessors inside the ObjCImplDecl in which they are synthesized.
This patch is motivated by (and factored out from) https://reviews.llvm.org/D66121 which is a debug in
Redeclare Objective-C property accessors inside the ObjCImplDecl in which they are synthesized.
This patch is motivated by (and factored out from) https://reviews.llvm.org/D66121 which is a debug info bugfix. Starting with DWARF 5 all Objective-C methods are nested inside their containing type, and that patch implements this for synthesized Objective-C properties.
1. SemaObjCProperty populates a list of synthesized accessors that may need to inserted into an ObjCImplDecl.
2. SemaDeclObjC::ActOnEnd inserts forward-declarations for all accessors for which no override was provided into their ObjCImplDecl. This patch does *not* synthesize AST function *bodies*. Moving that code from the static analyzer into Sema may be a good idea though.
3. Places that expect all methods to have bodies have been updated.
I did not update the static analyzer's inliner for synthesized properties to point back to the property declaration (see test/Analysis/Inputs/expected-plists/nullability-notes.m.plist), which I believed to be more bug than a feature.
Differential Revision: https://reviews.llvm.org/D68108
rdar://problem/53782400
show more ...
|
| #
0a220de9 |
| 07-Jun-2019 |
Michael Liao <[email protected]> |
[HIP] Fix visibility for 'extern' device variables.
Summary: - Fix a bug which misses the change for a variable to be set with target-specific attributes.
Reviewers: yaxunl
Subscribers: jvesely,
[HIP] Fix visibility for 'extern' device variables.
Summary: - Fix a bug which misses the change for a variable to be set with target-specific attributes.
Reviewers: yaxunl
Subscribers: jvesely, nhaehnle, cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D63020
show more ...
|
| #
bb1616ba |
| 31-Oct-2019 |
Yaxun (Sam) Liu <[email protected]> |
[CodeGen] Fix invalid llvm.linker.options about pragma detect_mismatch
When a target does not support pragma detect_mismatch, an llvm.linker.options metadata with an empty entry is created, which ca
[CodeGen] Fix invalid llvm.linker.options about pragma detect_mismatch
When a target does not support pragma detect_mismatch, an llvm.linker.options metadata with an empty entry is created, which causes diagnostic in backend since backend expects name/value pair in llvm.linker.options entries.
This patch fixes that.
Differential Revision: https://reviews.llvm.org/D69678
show more ...
|
| #
d157a9bc |
| 28-Oct-2019 |
Andrew Paverd <[email protected]> |
Add Windows Control Flow Guard checks (/guard:cf).
Summary: A new function pass (Transforms/CFGuard/CFGuard.cpp) inserts CFGuard checks on indirect function calls, using either the check mechanism (
Add Windows Control Flow Guard checks (/guard:cf).
Summary: A new function pass (Transforms/CFGuard/CFGuard.cpp) inserts CFGuard checks on indirect function calls, using either the check mechanism (X86, ARM, AArch64) or or the dispatch mechanism (X86-64). The check mechanism requires a new calling convention for the supported targets. The dispatch mechanism adds the target as an operand bundle, which is processed by SelectionDAG. Another pass (CodeGen/CFGuardLongjmp.cpp) identifies and emits valid longjmp targets, as required by /guard:cf. This feature is enabled using the `cfguard` CC1 option.
Reviewers: thakis, rnk, theraven, pcc
Subscribers: ychen, hans, metalcanine, dmajor, tomrittervg, alex, mehdi_amini, mgorny, javed.absar, kristof.beyls, hiraditya, steven_wu, dexonsmith, cfe-commits, llvm-commits
Tags: #clang, #llvm
Differential Revision: https://reviews.llvm.org/D65761
show more ...
|
| #
40ab8ae9 |
| 27-Oct-2019 |
Matt Arsenault <[email protected]> |
OpenMP: Add helper function for convergent runtime calls
Most of the functions emitted here should probably be convergent, but only barriers are currently marked. Introduce this helper before adding
OpenMP: Add helper function for convergent runtime calls
Most of the functions emitted here should probably be convergent, but only barriers are currently marked. Introduce this helper before adding convergent to more functions.
show more ...
|
| #
e6125fc0 |
| 20-Oct-2019 |
Yaxun Liu <[email protected]> |
[AMDGPU] Fix assertion due to initializer list
Sometimes a global var is replaced by a different llvm value. clang use GetAddrOfGlobalVar to get the original llvm global variable. For most targets,
[AMDGPU] Fix assertion due to initializer list
Sometimes a global var is replaced by a different llvm value. clang use GetAddrOfGlobalVar to get the original llvm global variable. For most targets, GetAddrOfGlobalVar returns either the llvm global variable or a bitcast of the llvm global variable. However, for AMDGPU target, GetAddrOfGlobalVar returns the addrspace cast or addrspace cast plus bitcast of the llvm global variable. To get the llvm global variable, these casts need to be stripped, otherwise there is assertion.
This patch fixes that.
Differential Revision: https://reviews.llvm.org/D69129
llvm-svn: 375362
show more ...
|
| #
15984457 |
| 17-Oct-2019 |
Dmitry Mikulin <[email protected]> |
Revert Tag CFI-generated data structures with "#pragma clang section" attributes.
This reverts r375022 (git commit e2692b3bc0327606748b6d291b9009d2c845ced5)
llvm-svn: 375069
|
| #
e2692b3b |
| 16-Oct-2019 |
Dmitry Mikulin <[email protected]> |
Tag CFI-generated data structures with "#pragma clang section" attributes.
Differential Revision: https://reviews.llvm.org/D68808
llvm-svn: 375022
|
| #
5836c356 |
| 15-Oct-2019 |
Sergey Dmitriev <[email protected]> |
[Clang][OpenMP Offload] Move offload registration code to the wrapper
The final list of OpenMP offload targets becomes known only at the link time and since offload registration code depends on the
[Clang][OpenMP Offload] Move offload registration code to the wrapper
The final list of OpenMP offload targets becomes known only at the link time and since offload registration code depends on the targets list it makes sense to delay offload registration code generation to the link time instead of adding it to the host part of every fat object. This patch moves offload registration code generation from clang to the offload wrapper tool.
This is the last part of the OpenMP linker script elimination patch https://reviews.llvm.org/D64943
Differential Revision: https://reviews.llvm.org/D68746
llvm-svn: 374937
show more ...
|
| #
f14642f2 |
| 15-Oct-2019 |
Dmitry Mikulin <[email protected]> |
Added support for "#pragma clang section relro=<name>"
Differential Revision: https://reviews.llvm.org/D68806
llvm-svn: 374934
|
| #
c2cd2d40 |
| 10-Oct-2019 |
Alexey Bataev <[email protected]> |
[OPENMP50]Support for declare variant directive for NVPTX target.
NVPTX does not support global aliases. Instead, we have to copy the full body of the variant function for the original function.
ll
[OPENMP50]Support for declare variant directive for NVPTX target.
NVPTX does not support global aliases. Instead, we have to copy the full body of the variant function for the original function.
llvm-svn: 374387
show more ...
|
| #
48632af2 |
| 08-Oct-2019 |
Richard Smith <[email protected]> |
Fix crash or wrong code bug if a lifetime-extended temporary contains a "non-constant" value.
If the constant evaluator evaluates part of a variable initializer, including the initializer for some l
Fix crash or wrong code bug if a lifetime-extended temporary contains a "non-constant" value.
If the constant evaluator evaluates part of a variable initializer, including the initializer for some lifetime-extended temporary, but fails to fully evaluate the initializer, it can leave behind wrong values for temporaries encountered in that initialization. Don't try to emit those from CodeGen! Instead, look at the values that constant evaluation produced if (and only if) it actually succeeds and we're emitting the lifetime-extending declaration's initializer as a constant.
llvm-svn: 374119
show more ...
|
| #
772e266f |
| 04-Oct-2019 |
Richard Smith <[email protected]> |
Properly handle instantiation-dependent array bounds.
We previously failed to treat an array with an instantiation-dependent but not value-dependent bound as being an instantiation-dependent type. W
Properly handle instantiation-dependent array bounds.
We previously failed to treat an array with an instantiation-dependent but not value-dependent bound as being an instantiation-dependent type. We now track the array bound expression as part of a constant array type if it's an instantiation-dependent expression.
llvm-svn: 373685
show more ...
|
| #
1fae7448 |
| 03-Oct-2019 |
Simon Pilgrim <[email protected]> |
Fix MSVC "result of 32-bit shift implicitly converted to 64 bits" warning. NFCI.
llvm-svn: 373613
|
| #
c79099e0 |
| 03-Oct-2019 |
Guillaume Chatelet <[email protected]> |
[Alignment][Clang][NFC] Add CharUnits::getAsAlign
Summary: This is a prerequisite to removing `llvm::GlobalObject::setAlignment(unsigned)`. This is patch is part of a series to introduce an Alignmen
[Alignment][Clang][NFC] Add CharUnits::getAsAlign
Summary: This is a prerequisite to removing `llvm::GlobalObject::setAlignment(unsigned)`. This is patch is part of a series to introduce an Alignment type. See this thread for context: http://lists.llvm.org/pipermail/llvm-dev/2019-July/133851.html See this patch for the introduction of the type: https://reviews.llvm.org/D64790
Reviewers: courbet
Subscribers: jholewinski, cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D68274
llvm-svn: 373592
show more ...
|
| #
2df5f12e |
| 01-Oct-2019 |
Alexey Bataev <[email protected]> |
[OPENMP50]Initial codegen for declare variant implementation vendor.
Initial implementation of global aliases emission for the declare variant pragma with implementation vendor context selector set.
[OPENMP50]Initial codegen for declare variant implementation vendor.
Initial implementation of global aliases emission for the declare variant pragma with implementation vendor context selector set.
llvm-svn: 373387
show more ...
|
| #
2b4fa534 |
| 29-Sep-2019 |
Richard Smith <[email protected]> |
For P0784R7: compute whether a variable has constant destruction if it has a constexpr destructor.
For constexpr variables, reject if the variable does not have constant destruction. In all cases, d
For P0784R7: compute whether a variable has constant destruction if it has a constexpr destructor.
For constexpr variables, reject if the variable does not have constant destruction. In all cases, do not emit runtime calls to the destructor for variables with constant destruction.
llvm-svn: 373159
show more ...
|
| #
350de4f0 |
| 24-Sep-2019 |
Adrian Prantl <[email protected]> |
Support for DWARF-5 C++ language tags.
This patch provides support for DW_LANG_C_plus_plus_11, DW_LANG_C_plus_plus_14 tags in the Clang C++ frontend.
Patch by Sourabh Singh Tomar! Differential Revi
Support for DWARF-5 C++ language tags.
This patch provides support for DW_LANG_C_plus_plus_11, DW_LANG_C_plus_plus_14 tags in the Clang C++ frontend.
Patch by Sourabh Singh Tomar! Differential Revision: https://reviews.llvm.org/D67613
Reapplies r372663 after adapting a failing test in the LLDB testsuite.
llvm-svn: 372681
show more ...
|
| #
5c49c267 |
| 23-Sep-2019 |
Jonas Devlieghere <[email protected]> |
Revert "Support for DWARF-5 C++ language tags."
This reverts commit bf9c8ffb54943c6d77398adbedddf05ef9724007.
llvm-svn: 372672
|
| #
bf9c8ffb |
| 23-Sep-2019 |
Adrian Prantl <[email protected]> |
Support for DWARF-5 C++ language tags.
This patch provides support for DW_LANG_C_plus_plus_11, DW_LANG_C_plus_plus_14 tags in the Clang C++ frontend.
Patch by Sourabh Singh Tomar! Differential Revi
Support for DWARF-5 C++ language tags.
This patch provides support for DW_LANG_C_plus_plus_11, DW_LANG_C_plus_plus_14 tags in the Clang C++ frontend.
Patch by Sourabh Singh Tomar! Differential Revision: https://reviews.llvm.org/D67613
llvm-svn: 372663
show more ...
|
| #
9ca1b94a |
| 11-Sep-2019 |
Fangrui Song <[email protected]> |
[CodeGen] Add alias for cpu_dispatch function with IFunc & Fix resolver linkage type
Multi-versioned functions defined by cpu_dispatch and implemented with IFunc can not be called outside the transl
[CodeGen] Add alias for cpu_dispatch function with IFunc & Fix resolver linkage type
Multi-versioned functions defined by cpu_dispatch and implemented with IFunc can not be called outside the translation units where they are defined due to lack of symbols. This patch add function aliases for these functions and thus make them visible outside.
Differential Revision: https://reviews.llvm.org/D67058 Patch by Senran Zhang
llvm-svn: 371586
show more ...
|
| #
729e242a |
| 23-Aug-2019 |
Alexey Bataev <[email protected]> |
[OPENMP5.0]Add support for device_type clause in declare target construct.
OpenMP 5.0 introduced new clause for declare target directive, device_type clause, which may accept values host, nohost, an
[OPENMP5.0]Add support for device_type clause in declare target construct.
OpenMP 5.0 introduced new clause for declare target directive, device_type clause, which may accept values host, nohost, and any. Host means that the function must be emitted only for the host, nohost - only for the device, and any - for both, device and the host.
llvm-svn: 369775
show more ...
|
| #
f21bca02 |
| 22-Aug-2019 |
Nick Desaulniers <[email protected]> |
[Clang][CodeGen] set alias linkage on QualType
Summary: It seems that CodeGen was always using ExternalLinkage when emitting a GlobalDecl with __attribute__((alias)). This leads to symbol redefiniti
[Clang][CodeGen] set alias linkage on QualType
Summary: It seems that CodeGen was always using ExternalLinkage when emitting a GlobalDecl with __attribute__((alias)). This leads to symbol redefinitions (ODR) that cause failures at link time for static aliases. This is readily attempting to link an ARM (32b) allyesconfig Linux kernel built with Clang.
Reported-by: nathanchance Suggested-by: ihalip Link: https://bugs.llvm.org/show_bug.cgi?id=42377 Link: https://github.com/ClangBuiltLinux/linux/issues/631
Reviewers: rsmith, aaron.ballman, erichkeane
Reviewed By: aaron.ballman
Subscribers: javed.absar, kristof.beyls, cfe-commits, srhines, ihalip, nathanchance
Tags: #clang
Differential Revision: https://reviews.llvm.org/D66492
llvm-svn: 369705
show more ...
|