| #
1be5369a |
| 25-Apr-2019 |
Reid Kleckner <[email protected]> |
Revert [COFF] Statically link certain runtime library functions
This reverts r359250 (git commit 4730604bd3a361c68b92b18bf73a5daa15afe9f4)
The newly added test should use -cc1 and -emit-llvm and th
Revert [COFF] Statically link certain runtime library functions
This reverts r359250 (git commit 4730604bd3a361c68b92b18bf73a5daa15afe9f4)
The newly added test should use -cc1 and -emit-llvm and there are other test failures that need fixing.
llvm-svn: 359251
show more ...
|
| #
4730604b |
| 25-Apr-2019 |
Reid Kleckner <[email protected]> |
[COFF] Statically link certain runtime library functions
Statically link certain runtime library functions for MSVC/GNU Windows environments. This is consistent with MSVC behavior.
Fixes LNK4286 an
[COFF] Statically link certain runtime library functions
Statically link certain runtime library functions for MSVC/GNU Windows environments. This is consistent with MSVC behavior.
Fixes LNK4286 and LNK4217 warnings from link.exe when linking the static CRT: LINK : warning LNK4286: symbol '__std_terminate' defined in 'libvcruntime.lib(ehhelpers.obj)' is imported by 'ASAN_NOINST_TEST_OBJECTS.asan_noinst_test.cc.x86_64-calls.o' LINK : warning LNK4286: symbol '__std_terminate' defined in 'libvcruntime.lib(ehhelpers.obj)' is imported by 'ASAN_NOINST_TEST_OBJECTS.asan_test_main.cc.x86_64-calls.o' LINK : warning LNK4217: symbol '_CxxThrowException' defined in 'libvcruntime.lib(throw.obj)' is imported by 'ASAN_NOINST_TEST_OBJECTS.gtest-all.cc.x86_64-calls.o' in function '"int `public: static class UnitTest::GetInstance * __cdecl testing::UnitTest::GetInstance(void)'::`1'::dtor$5" (?dtor$5@?0??GetInstance@UnitTest@testing@@SAPEAV12@XZ@4HA)'
Reviewers: mstorsjo, efriedma, TomTan, compnerd, smeenai, mgrang
Subscribers: abdulras, theraven, smeenai, pcc, mehdi_amini, javed.absar, inglorion, kristof.beyls, dexonsmith, cfe-commits
Differential Revision: https://reviews.llvm.org/D55229
llvm-svn: 359250
show more ...
|
| #
899d1392 |
| 24-Apr-2019 |
Fangrui Song <[email protected]> |
Use llvm::stable_sort
llvm-svn: 359098
|
| #
fb59fef7 |
| 23-Apr-2019 |
Scott Linder <[email protected]> |
Move setTargetAttributes after setGVProperties in SetFunctionAttributes
AMDGPU currently relies on global properties being set before setTargetProperties is called. Existing targets like MIPS which
Move setTargetAttributes after setGVProperties in SetFunctionAttributes
AMDGPU currently relies on global properties being set before setTargetProperties is called. Existing targets like MIPS which rely on setTargetProperties do not rely on the current behavior, so this patch moves the call later in SetFunctionAttributes.
Differential Revision: https://reviews.llvm.org/D60967
llvm-svn: 359039
show more ...
|
| #
d880de2d |
| 30-Mar-2019 |
Anton Afanasyev <[email protected]> |
Adds `-ftime-trace` option to clang that produces Chrome `chrome://tracing` compatible JSON profiling output dumps.
This change adds hierarchical "time trace" profiling blocks that can be visualized
Adds `-ftime-trace` option to clang that produces Chrome `chrome://tracing` compatible JSON profiling output dumps.
This change adds hierarchical "time trace" profiling blocks that can be visualized in Chrome, in a "flame chart" style. Each profiling block can have a "detail" string that for example indicates the file being processed, template name being instantiated, function being optimized etc.
This is taken from GitHub PR: https://github.com/aras-p/llvm-project-20170507/pull/2
Patch by Aras Pranckevičius.
Differential Revision: https://reviews.llvm.org/D58675
llvm-svn: 357340
show more ...
|
| #
d1c5b28c |
| 22-Mar-2019 |
Peter Collingbourne <[email protected]> |
IRGen: Remove StructorType; thread GlobalDecl through more code. NFCI.
This should make it easier to add more structor variants.
Differential Revision: https://reviews.llvm.org/D59724
llvm-svn: 35
IRGen: Remove StructorType; thread GlobalDecl through more code. NFCI.
This should make it easier to add more structor variants.
Differential Revision: https://reviews.llvm.org/D59724
llvm-svn: 356822
show more ...
|
| #
c5687258 |
| 21-Mar-2019 |
Alexey Bataev <[email protected]> |
[OPENMP]Codegen support for allocate directive on global variables.
For the global variables the allocate directive must specify only the predefined allocator. This allocator must be translated into
[OPENMP]Codegen support for allocate directive on global variables.
For the global variables the allocate directive must specify only the predefined allocator. This allocator must be translated into the correct form of the address space for the targets that support different address spaces.
llvm-svn: 356702
show more ...
|
|
Revision tags: llvmorg-8.0.0 |
|
| #
a03ae73c |
| 12-Mar-2019 |
Jason Liu <[email protected]> |
Add XCOFF triple object format type for AIX
This patch adds an XCOFF triple object format type into LLVM. This XCOFF triple object file type will be used later by object file and assembly generation
Add XCOFF triple object format type for AIX
This patch adds an XCOFF triple object format type into LLVM. This XCOFF triple object file type will be used later by object file and assembly generation for the AIX platform.
Differential Revision: https://reviews.llvm.org/D58930
llvm-svn: 355989
show more ...
|
|
Revision tags: llvmorg-8.0.0-rc5, llvmorg-8.0.0-rc4 |
|
| #
25ed0c07 |
| 07-Mar-2019 |
Alexey Bataev <[email protected]> |
[OPENMP 5.0]Add initial support for 'allocate' directive.
Added parsing/sema analysis/serialization/deserialization support for 'allocate' directive.
llvm-svn: 355614
|
| #
39f6d7e6 |
| 01-Mar-2019 |
Rong Xu <[email protected]> |
[PGO] Use the explicit parameter in ProfileSummary API. NFC
Use the explicit parameter in setProfileSummary() and getSummary(). This is a follow-up of r355131.
llvm-svn: 355209
|
|
Revision tags: llvmorg-8.0.0-rc3 |
|
| #
e739ac0e |
| 27-Feb-2019 |
Yaxun Liu <[email protected]> |
[HIP] change kernel stub name
Add .stub to kernel stub function name so that it is different from kernel name in device code. This is necessary to let debugger find correct symbol for kernel.
Diffe
[HIP] change kernel stub name
Add .stub to kernel stub function name so that it is different from kernel name in device code. This is necessary to let debugger find correct symbol for kernel.
Differential Revision: https://reviews.llvm.org/D58518
llvm-svn: 354948
show more ...
|
| #
0ee7bd4a |
| 21-Feb-2019 |
Michael Liao <[email protected]> |
[CodeGen] Fix string literal address space casting.
Summary: - If a string literal is reused directly, need to add necessary address space casting if the target requires that.
Reviewers: yaxunl
[CodeGen] Fix string literal address space casting.
Summary: - If a string literal is reused directly, need to add necessary address space casting if the target requires that.
Reviewers: yaxunl
Subscribers: jvesely, cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D58509
llvm-svn: 354610
show more ...
|
| #
c18e9ecd |
| 14-Feb-2019 |
Yaxun Liu <[email protected]> |
[CUDA][HIP] Use device side kernel and variable names when registering them
__hipRegisterFunction and __hipRegisterVar need to accept device side kernel and variable names so that HIP runtime can as
[CUDA][HIP] Use device side kernel and variable names when registering them
__hipRegisterFunction and __hipRegisterVar need to accept device side kernel and variable names so that HIP runtime can associate kernel stub functions in host code with kernel symbols in fat binaries, and associate shadow variables in host code with device variables in fat binaries.
Currently, clang assumes kernel functions and device variables have the same name as the kernel stub functions and shadow variables. However, when host is compiled in windows with MSVC C++ ABI and device is compiled with Itanium C++ ABI (e.g. AMDGPU), kernels and device symbols in fat binary are mangled differently than host.
This patch gets the device side kernel and variable name by mangling them in the mangle context of aux target.
Differential Revision: https://reviews.llvm.org/D58163
llvm-svn: 354004
show more ...
|
| #
80a1ee46 |
| 12-Feb-2019 |
Scott Linder <[email protected]> |
[AMDGPU] Require at least protected visibility for certain symbols
This allows the global visibility controls to be restrictive while still populating the dynamic symbol table where required.
Diffe
[AMDGPU] Require at least protected visibility for certain symbols
This allows the global visibility controls to be restrictive while still populating the dynamic symbol table where required.
Differential Revision: https://reviews.llvm.org/D56871
llvm-svn: 353870
show more ...
|
|
Revision tags: llvmorg-7.1.0, llvmorg-7.1.0-rc1 |
|
| #
892e6331 |
| 07-Feb-2019 |
Erich Keane <[email protected]> |
Fix r350643 to limit COFF emission to <= 32 BYTES instead of BITS.
The patch in r350643 incorrectly sets the COFF emission based on bits instead of bytes. This patch converts the 32 via CharUnits to
Fix r350643 to limit COFF emission to <= 32 BYTES instead of BITS.
The patch in r350643 incorrectly sets the COFF emission based on bits instead of bytes. This patch converts the 32 via CharUnits to bits to compare the correct values.
Change-Id: Icf38a16470ad5ae3531374969c033557ddb0d323 llvm-svn: 353411
show more ...
|
|
Revision tags: llvmorg-8.0.0-rc2 |
|
| #
9871db06 |
| 05-Feb-2019 |
James Y Knight <[email protected]> |
[opaque pointer types] Pass function types for runtime function calls.
Emit{Nounwind,}RuntimeCall{,OrInvoke} have been modified to take a FunctionCallee as an argument, and CreateRuntimeFunction has
[opaque pointer types] Pass function types for runtime function calls.
Emit{Nounwind,}RuntimeCall{,OrInvoke} have been modified to take a FunctionCallee as an argument, and CreateRuntimeFunction has been modified to return a FunctionCallee. All callers have been updated.
Additionally, CreateBuiltinFunction is removed, as it was redundant with CreateRuntimeFunction after some previous changes.
Differential Revision: https://reviews.llvm.org/D57668
llvm-svn: 353184
show more ...
|
| #
916db651 |
| 02-Feb-2019 |
James Y Knight <[email protected]> |
Remove redundant FunctionDecl argument from a couple functions.
This argument was added in r254554 in order to support the pass_object_size attribute. However, in r296076, the attribute's presence i
Remove redundant FunctionDecl argument from a couple functions.
This argument was added in r254554 in order to support the pass_object_size attribute. However, in r296076, the attribute's presence is now also represented in FunctionProtoType's ExtParameterInfo, and thus it's unnecessary to pass along a separate FunctionDecl.
The functions modified are: RequiredArgs::forPrototype{,Plus}, and CodeGenTypes::ConvertFunctionType.
After this, it's also (again) unnecessary to have a separate ConvertFunctionType function ConvertType, so convert callers back to the latter, leaving the former as an internal helper function.
llvm-svn: 352946
show more ...
|
| #
251e1488 |
| 01-Feb-2019 |
Michael Kruse <[email protected]> |
[OpenMP 5.0] Parsing/sema support for "omp declare mapper" directive.
This patch implements parsing and sema for "omp declare mapper" directive. User defined mapper, i.e., declare mapper directive,
[OpenMP 5.0] Parsing/sema support for "omp declare mapper" directive.
This patch implements parsing and sema for "omp declare mapper" directive. User defined mapper, i.e., declare mapper directive, is a new feature in OpenMP 5.0. It is introduced to extend existing map clauses for the purpose of simplifying the copy of complex data structures between host and device (i.e., deep copy). An example is shown below:
struct S { int len; int *d; }; #pragma omp declare mapper(struct S s) map(s, s.d[0:s.len]) // Memory region that d points to is also mapped using this mapper.
Contributed-by: Lingda Li <[email protected]>
Differential Revision: https://reviews.llvm.org/D56326
llvm-svn: 352906
show more ...
|
| #
3933addd |
| 30-Jan-2019 |
James Y Knight <[email protected]> |
Cleanup: replace uses of CallSite with CallBase.
llvm-svn: 352595
|
| #
bef26637 |
| 28-Jan-2019 |
Scott Linder <[email protected]> |
Add -fapply-global-visibility-to-externs for -cc1
Introduce an option to request global visibility settings be applied to declarations without a definition or an explicit visibility, rather than the
Add -fapply-global-visibility-to-externs for -cc1
Introduce an option to request global visibility settings be applied to declarations without a definition or an explicit visibility, rather than the existing behavior of giving these default visibility. When the visibility of all or most extern definitions are known this allows for the same optimisations -fvisibility permits without updating source code to annotate all declarations.
Differential Revision: https://reviews.llvm.org/D56868
llvm-svn: 352391
show more ...
|
| #
f09c19c8 |
| 25-Jan-2019 |
Reid Kleckner <[email protected]> |
[CodeGen] Implement isTriviallyRecursive with StmtVisitor instead of RecursiveASTVisitor
This code doesn't need to traverse types, lambdas, template arguments, etc to detect trivial recursion. We ca
[CodeGen] Implement isTriviallyRecursive with StmtVisitor instead of RecursiveASTVisitor
This code doesn't need to traverse types, lambdas, template arguments, etc to detect trivial recursion. We can do a basic statement traversal instead. This reduces the time spent compiling CodeGenModule.cpp, the object file size (mostly reduced debug info), and the final executable size by a small amount. I measured the exe mostly to check how much of the overhead is from debug info, object file section headers, etc, vs actual code.
metric | before | after | diff time (s) | 47.4 | 38.5 | -8.9 obj (kb) | 12888 | 12012 | -876 exe (kb) | 86072 | 85996 | -76
llvm-svn: 352232
show more ...
|
|
Revision tags: llvmorg-8.0.0-rc1 |
|
| #
2946cd70 |
| 19-Jan-2019 |
Chandler Carruth <[email protected]> |
Update the file headers across all of the LLVM projects in the monorepo to reflect the new license.
We understand that people may be surprised that we're moving the header entirely to discuss the ne
Update the file headers across all of the LLVM projects in the monorepo to reflect the new license.
We understand that people may be surprised that we're moving the header entirely to discuss the new license. We checked this carefully with the Foundation's lawyer and we believe this is the correct approach.
Essentially, all code in the project is now made available by the LLVM project under our new license, so you will see that the license headers include that license only. Some of our contributors have contributed code under our old license, and accordingly, we have retained a copy of our old license notice in the top-level files in each project and repository.
llvm-svn: 351636
show more ...
|
| #
ac991bbb |
| 19-Jan-2019 |
Johannes Doerfert <[email protected]> |
Emit !callback metadata and introduce the callback attribute
With commit r351627, LLVM gained the ability to apply (existing) IPO optimizations on indirections through callbacks, or transitive c
Emit !callback metadata and introduce the callback attribute
With commit r351627, LLVM gained the ability to apply (existing) IPO optimizations on indirections through callbacks, or transitive calls. The general idea is that we use an abstraction to hide the middle man and represent the callback call in the context of the initial caller. It is described in more detail in the commit message of the LLVM patch r351627, the llvm::AbstractCallSite class description, and the language reference section on callback-metadata.
This commit enables clang to emit !callback metadata that is understood by LLVM. It does so in three different cases: 1) For known broker functions declarations that are directly generated, e.g., __kmpc_fork_call for the OpenMP pragma parallel. 2) For known broker functions that are identified by their name and source location through the builtin detection, e.g., pthread_create from the POSIX thread API. 3) For user annotated functions that carry the "callback(callee, ...)" attribute. The attribute has to include the name, or index, of the callback callee and how the passed arguments can be identified (as many as the callback callee has). See the callback attribute documentation for detailed information.
Differential Revision: https://reviews.llvm.org/D55483
llvm-svn: 351629
show more ...
|
| #
e9f52106 |
| 15-Jan-2019 |
Peter Collingbourne <[email protected]> |
CodeGen: Remove debug printf unintentionally added in r351228.
llvm-svn: 351241
|
| #
93165d64 |
| 15-Jan-2019 |
Anton Korobeynikov <[email protected]> |
[MSP430] Provide a toolchain description
This is an initial implementation for msp430 toolchain including -mmcu option support -mhwmult options support -integrated-as by default
The toolchain uses
[MSP430] Provide a toolchain description
This is an initial implementation for msp430 toolchain including -mmcu option support -mhwmult options support -integrated-as by default
The toolchain uses msp430-elf-as as a linker and supports msp430-gcc toolchain tree.
Patch by Kristina Bessonova!
Differential Revision: https://reviews.llvm.org/D56658
llvm-svn: 351228
show more ...
|