#
76945b2f |
| 29-Apr-2016 |
Justin Lebar <jlebar@google.com> |
[CUDA] Copy host builtin types to NVPTXTargetInfo.
Summary: Host and device types must match, otherwise when we pass values back and forth between the host and device, we will get the wrong result.
[CUDA] Copy host builtin types to NVPTXTargetInfo.
Summary: Host and device types must match, otherwise when we pass values back and forth between the host and device, we will get the wrong result.
This patch makes NVPTXTargetInfo inherit most of its type information from the host's target info.
Reviewers: rsmith
Subscribers: cfe-commits, jhen, tra
Differential Revision: http://reviews.llvm.org/D19346
llvm-svn: 268131
show more ...
|
#
3afb2668 |
| 28-Apr-2016 |
Peter Collingbourne <peter@pcc.me.uk> |
Re-apply r267784, r267824 and r267830.
I have updated the compiler-rt tests.
llvm-svn: 267903
|
#
5556a5cf |
| 28-Apr-2016 |
Benjamin Kramer <benny.kra@googlemail.com> |
Revert r267784, r267824 and r267830.
It makes compiler-rt tests fail if the gold plugin is enabled.
Revert "Rework interface for bitset-using features to use a notion of LTO visibility." Revert "Dr
Revert r267784, r267824 and r267830.
It makes compiler-rt tests fail if the gold plugin is enabled.
Revert "Rework interface for bitset-using features to use a notion of LTO visibility." Revert "Driver: only produce CFI -fvisibility= error when compiling." Revert "clang/test/CodeGenCXX/cfi-blacklist.cpp: Exclude ms targets. They would be non-cfi."
llvm-svn: 267871
show more ...
|
#
a8b2f7c0 |
| 27-Apr-2016 |
Peter Collingbourne <peter@pcc.me.uk> |
Rework interface for bitset-using features to use a notion of LTO visibility.
Bitsets, and the compiler features they rely on (vtable opt, CFI), only have visibility within the LTO'd part of the lin
Rework interface for bitset-using features to use a notion of LTO visibility.
Bitsets, and the compiler features they rely on (vtable opt, CFI), only have visibility within the LTO'd part of the linkage unit. Therefore, only enable these features for classes with hidden LTO visibility. This notion is based on object file visibility or (on Windows) dllimport/dllexport attributes.
We provide the [[clang::lto_visibility_public]] attribute to override the compiler's LTO visibility inference in cases where the class is defined in the non-LTO'd part of the linkage unit, or where the ABI supports calling classes derived from abstract base classes with hidden visibility in other linkage units (e.g. COM on Windows).
If the cross-DSO CFI mode is enabled, bitset checks are emitted even for classes with public LTO visibility, as that mode uses a separate mechanism to cause bitsets to be exported.
This mechanism replaces the whole-program-vtables blacklist, so remove the -fwhole-program-vtables-blacklist flag.
Because __declspec(uuid()) now implies [[clang::lto_visibility_public]], the support for the special attr:uuid blacklist entry is removed.
Differential Revision: http://reviews.llvm.org/D18635
llvm-svn: 267784
show more ...
|
#
bf010806 |
| 27-Apr-2016 |
Sunil Srivastava <sunil_srivastava@playstation.sony.com> |
Set the default C standard to C99 when targeting the PS4.
Patch by Douglas Yung!
Differential Revision: http://reviews.llvm.org/D19003
llvm-svn: 267772
|
#
382d3553 |
| 26-Apr-2016 |
Yaxun Liu <Yaxun.Liu@amd.com> |
[OpenCL] Add predefined macros.
OpenCL spec requires __OPENCL_C_VERSION__ to be defined based on -cl-std option. This patch implements that.
The patch also defines __FAST_RELAXED_MATH__ based on -c
[OpenCL] Add predefined macros.
OpenCL spec requires __OPENCL_C_VERSION__ to be defined based on -cl-std option. This patch implements that.
The patch also defines __FAST_RELAXED_MATH__ based on -cl-fast-relaxed-math option.
Also fixed a test using -std=c99 for OpenCL program. Limit allowed language standard of OpenCL to be OpenCL standards.
Differential Revision: http://reviews.llvm.org/D19071
llvm-svn: 267590
show more ...
|
#
811ff92e |
| 08-Apr-2016 |
Wei Mi <wmi@google.com> |
Always have clang pass -pie-level and -pic-level values to the code generator.
Patch by tmsriram!
Differential Revision: http://reviews.llvm.org/D18843
llvm-svn: 265816
|
#
f7b3d6c5 |
| 08-Apr-2016 |
Saleem Abdulrasool <compnerd@compnerd.org> |
Move EABIVersion from CodeGenOptions to TargetOptions
It is possible to argue that the EABIVersion field is similar in spirit to the ABI field in TargetOptions. It represents the embedded ABI that
Move EABIVersion from CodeGenOptions to TargetOptions
It is possible to argue that the EABIVersion field is similar in spirit to the ABI field in TargetOptions. It represents the embedded ABI that the target follows. This will allow us to thread this information into the target information construction.
llvm-svn: 265807
show more ...
|
#
351241c8 |
| 07-Apr-2016 |
Richard Smith <richard-llvm@metafoo.co.uk> |
Replace Sema-level implementation of -fassume-sane-operator-new with a CodeGen-level implementation. Instead of adding an attribute to clang's FunctionDecl, add the IR attribute directly. This means
Replace Sema-level implementation of -fassume-sane-operator-new with a CodeGen-level implementation. Instead of adding an attribute to clang's FunctionDecl, add the IR attribute directly. This means a module built with this flag is now compatible with code built without it and vice versa.
This change also results in the 'noalias' attribute no longer being added to calls to operator new in the IR; it's now only added to the declaration. It also fixes a bug where we failed to add the attribute to the 'nothrow' versions (because we didn't implicitly declare them, there was no good time to inject a fake attribute).
llvm-svn: 265728
show more ...
|
#
31994e2e |
| 06-Apr-2016 |
Sean Silva <chisophugis@gmail.com> |
Revert "Set the default C standard to C99 when targeting the PS4."
This reverts r265359.
It breaks - llvm-clang-lld-x86_64-scei-ps4-ubuntu-fast - llvm-clang-lld-x86_64-scei-ps4-windows10pro-fast
F
Revert "Set the default C standard to C99 when targeting the PS4."
This reverts r265359.
It breaks - llvm-clang-lld-x86_64-scei-ps4-ubuntu-fast - llvm-clang-lld-x86_64-scei-ps4-windows10pro-fast
Failing Tests (5): Clang :: FixIt/fixit-errors.c Clang :: Preprocessor/init.c Clang :: Sema/attr-deprecated.c Clang :: Sema/nullability.c Clang :: SemaObjC/objcbridge-attribute-arc.m
llvm-svn: 265601
show more ...
|
#
d3a44f68 |
| 05-Apr-2016 |
Justin Lebar <jlebar@google.com> |
[CUDA] Add -fcuda-flush-denormals-to-zero.
Summary: Setting this flag causes all functions are annotated with the "nvvm-f32ftz" = "true" attribute.
In addition, we annotate the module with "nvvm-re
[CUDA] Add -fcuda-flush-denormals-to-zero.
Summary: Setting this flag causes all functions are annotated with the "nvvm-f32ftz" = "true" attribute.
In addition, we annotate the module with "nvvm-reflect-ftz" set to 0 or 1, depending on whether -cuda-flush-denormals-to-zero is set. This is read by the NVVMReflect pass.
Reviewers: tra, rnk
Subscribers: cfe-commits
Differential Revision: http://reviews.llvm.org/D18671
llvm-svn: 265435
show more ...
|
#
d2f44d8d |
| 05-Apr-2016 |
Nirav Dave <niravd@google.com> |
Add -fno-jump-tables and-fjump-tables flags
Add no-jump-tables flag to disable use of jump tables when lowering switch statements
Reviewers: echristo, hans
Subscribers: llvm-commits
Differential
Add -fno-jump-tables and-fjump-tables flags
Add no-jump-tables flag to disable use of jump tables when lowering switch statements
Reviewers: echristo, hans
Subscribers: llvm-commits
Differential Revision: http://reviews.llvm.org/D18407
llvm-svn: 265425
show more ...
|
#
0e15a77d |
| 04-Apr-2016 |
Sunil Srivastava <sunil_srivastava@playstation.sony.com> |
Set the default C standard to C99 when targeting the PS4.
Patch by Douglas Yung!
Differential Revision: http://reviews.llvm.org/D18708
llvm-svn: 265359
|
#
ba122ab4 |
| 30-Mar-2016 |
Justin Lebar <jlebar@google.com> |
[CUDA] Make unattributed constexpr functions implicitly host+device.
With this patch, by a constexpr function is implicitly host+device unless:
a) it's a variadic function (variadic functions are
[CUDA] Make unattributed constexpr functions implicitly host+device.
With this patch, by a constexpr function is implicitly host+device unless:
a) it's a variadic function (variadic functions are not allowed on the device side), or b) it's preceeded by a __device__ overload in a system header.
The restriction on overloading __host__ __device__ functions on the basis of their CUDA attributes remains in place, but we use (b) to allow us to define __device__ overloads for constexpr functions in cmath, which would otherwise be __host__ __device__ and thus not overloadable.
You can disable this behavior with -fno-cuda-host-device-constexpr.
Reviewers: tra, rnk, rsmith
Subscribers: cfe-commits
Differential Revision: http://reviews.llvm.org/D18380
llvm-svn: 264964
show more ...
|
#
25c4a81e |
| 29-Mar-2016 |
Justin Lebar <jlebar@google.com> |
[CUDA] Remove three obsolete CUDA cc1 flags.
Summary: * -fcuda-target-overloads
Previously unconditionally set to true by the driver. Necessary for correct functioning of the compiler -- our C
[CUDA] Remove three obsolete CUDA cc1 flags.
Summary: * -fcuda-target-overloads
Previously unconditionally set to true by the driver. Necessary for correct functioning of the compiler -- our CUDA headers wrapper won't compile without this.
* -fcuda-disable-target-call-checks
Previously unconditionally set to true by the driver. Necessary to compile almost any external CUDA code -- almost all libraries assume that host+device code can call host or device functions.
* -fcuda-allow-host-calls-from-host-device
No effect when target overloading is enabled.
Reviewers: tra
Subscribers: rsmith, cfe-commits
Differential Revision: http://reviews.llvm.org/D18416
llvm-svn: 264739
show more ...
|
#
46502723 |
| 24-Mar-2016 |
Eric Christopher <echristo@gmail.com> |
The time when -faltivec (or, on clang only, -maltivec) will magically include altivec.h has come and gone.
Rationale: This causes modules, rewrite-includes, etc to be sad and people should just incl
The time when -faltivec (or, on clang only, -maltivec) will magically include altivec.h has come and gone.
Rationale: This causes modules, rewrite-includes, etc to be sad and people should just include altivec.h in their source.
llvm-svn: 264235
show more ...
|
#
94867713 |
| 21-Mar-2016 |
Pete Cooper <peter_cooper@apple.com> |
Revert "Convert some ObjC msgSends to runtime calls."
This reverts commit r263607.
This change caused more objc_retain/objc_release calls in the IR but those are then incorrectly optimized by the A
Revert "Convert some ObjC msgSends to runtime calls."
This reverts commit r263607.
This change caused more objc_retain/objc_release calls in the IR but those are then incorrectly optimized by the ARC optimizer. Work is going to have to be done to ensure the ARC optimizer doesn't optimize user written RR, but that should land before this change.
This change will also need to be updated to take account for any changes required to ensure that user written calls to RR are distinct from those inserted by ARC.
llvm-svn: 263984
show more ...
|
#
d878e28e |
| 20-Mar-2016 |
Bruno Cardoso Lopes <bruno.cardoso@gmail.com> |
Reapply [2] [VFS] Add 'overlay-relative' field to YAML files
This reapplies r261552 and r263748. Fixed testcase to reapply.
The VFS overlay mapping between virtual paths and real paths is done thro
Reapply [2] [VFS] Add 'overlay-relative' field to YAML files
This reapplies r261552 and r263748. Fixed testcase to reapply.
The VFS overlay mapping between virtual paths and real paths is done through the 'external-contents' entries in YAML files, which contains hardcoded paths to the real files.
When a module compilation crashes, headers are dumped into <name>.cache/vfs directory and are mapped via the <name>.cache/vfs/vfs.yaml. The script generated for reproduction uses -ivfsoverlay pointing to file to gather the mapping between virtual paths and files inside <name>.cache/vfs. Currently, we are only capable of reproducing such crashes in the same machine as they happen, because of the hardcoded paths in 'external-contents'.
To be able to reproduce a crash in another machine, this patch introduces a new option in the VFS yaml file called 'overlay-relative'. When it's equal to 'true' it means that the provided path to the YAML file through the -ivfsoverlay option should also be used to prefix the final path for every 'external-contents'.
Example, given the invocation snippet "... -ivfsoverlay <name>.cache/vfs/vfs.yaml" and the following entry in the yaml file:
"overlay-relative": "true", "roots": [ ... "type": "directory", "name": "/usr/include", "contents": [ { "type": "file", "name": "stdio.h", "external-contents": "/usr/include/stdio.h" }, ...
Here, a file manager request for virtual "/usr/include/stdio.h", that will map into real path "/<absolute_path_to>/<name>.cache/vfs/usr/include/stdio.h.
This is a useful feature for debugging module crashes in machines other than the one where the error happened.
Differential Revision: http://reviews.llvm.org/D17457
rdar://problem/24499339
llvm-svn: 263893
show more ...
|
#
8e2e9d6f |
| 18-Mar-2016 |
Pirama Arumuga Nainar <pirama@google.com> |
Add -fnative-half-arguments-and-returns
Summary: r246764 handled __fp16 arguments and returns for AAPCS, but skipped this handling for OpenCL. Simlar to OpenCL, RenderScript also handles __fp16 typ
Add -fnative-half-arguments-and-returns
Summary: r246764 handled __fp16 arguments and returns for AAPCS, but skipped this handling for OpenCL. Simlar to OpenCL, RenderScript also handles __fp16 type natively.
This patch adds the -fnative-half-arguments-and-returns command line flag to allow such languages to skip this coercion of __fp16.
Reviewers: srhines, olista01
Subscribers: cfe-commits
Differential Revision: http://reviews.llvm.org/D18138
llvm-svn: 263795
show more ...
|
#
9e2f9d81 |
| 17-Mar-2016 |
Bruno Cardoso Lopes <bruno.cardoso@gmail.com> |
Revert "Reapply [VFS] Add 'overlay-relative' field to YAML files"
Tests failing on http://bb.pgr.jp/builders/cmake-clang-x86_64-linux/builds/46102
This reverts commit a1683cd6c9e07359c09f86e98a4db6
Revert "Reapply [VFS] Add 'overlay-relative' field to YAML files"
Tests failing on http://bb.pgr.jp/builders/cmake-clang-x86_64-linux/builds/46102
This reverts commit a1683cd6c9e07359c09f86e98a4db6b4e1bc51fc.
llvm-svn: 263750
show more ...
|
#
016b2d0d |
| 17-Mar-2016 |
Bruno Cardoso Lopes <bruno.cardoso@gmail.com> |
Reapply [VFS] Add 'overlay-relative' field to YAML files
This reapplies r261552.
The VFS overlay mapping between virtual paths and real paths is done through the 'external-contents' entries in YAML
Reapply [VFS] Add 'overlay-relative' field to YAML files
This reapplies r261552.
The VFS overlay mapping between virtual paths and real paths is done through the 'external-contents' entries in YAML files, which contains hardcoded paths to the real files.
When a module compilation crashes, headers are dumped into <name>.cache/vfs directory and are mapped via the <name>.cache/vfs/vfs.yaml. The script generated for reproduction uses -ivfsoverlay pointing to file to gather the mapping between virtual paths and files inside <name>.cache/vfs. Currently, we are only capable of reproducing such crashes in the same machine as they happen, because of the hardcoded paths in 'external-contents'.
To be able to reproduce a crash in another machine, this patch introduces a new option in the VFS yaml file called 'overlay-relative'. When it's equal to 'true' it means that the provided path to the YAML file through the -ivfsoverlay option should also be used to prefix the final path for every 'external-contents'.
Example, given the invocation snippet "... -ivfsoverlay <name>.cache/vfs/vfs.yaml" and the following entry in the yaml file:
"overlay-relative": "true", "roots": [ ... "type": "directory", "name": "/usr/include", "contents": [ { "type": "file", "name": "stdio.h", "external-contents": "/usr/include/stdio.h" }, ...
Here, a file manager request for virtual "/usr/include/stdio.h", that will map into real path "/<absolute_path_to>/<name>.cache/vfs/usr/include/stdio.h.
This is a useful feature for debugging module crashes in machines other than the one where the error happened.
Differential Revision: http://reviews.llvm.org/D17457
rdar://problem/24499339
llvm-svn: 263748
show more ...
|
#
be6c750a |
| 16-Mar-2016 |
Pete Cooper <peter_cooper@apple.com> |
Convert some ObjC msgSends to runtime calls.
It is faster to directly call the ObjC runtime for methods such as retain/release instead of sending a message to those functions.
This patch adds suppo
Convert some ObjC msgSends to runtime calls.
It is faster to directly call the ObjC runtime for methods such as retain/release instead of sending a message to those functions.
This patch adds support for converting messages to retain/release/alloc/autorelease to their equivalent runtime calls.
Tests included for the positive case of applying this transformation, negative tests that we ensure we only convert "alloc" to objc_alloc, not "alloc2", and also a driver test to ensure we enable this only for supported runtime versions.
Reviewed by John McCall.
Differential Revision: http://reviews.llvm.org/D14737
llvm-svn: 263607
show more ...
|
#
6c78974b |
| 15-Mar-2016 |
John Brawn <john.brawn@arm.com> |
Make it possible for AST plugins to enable themselves by default
Currently when an AST plugin is loaded it must then be enabled by passing -plugin pluginname or -add-plugin pluginname to the -cc1 co
Make it possible for AST plugins to enable themselves by default
Currently when an AST plugin is loaded it must then be enabled by passing -plugin pluginname or -add-plugin pluginname to the -cc1 command line. This patch adds a method to PluginASTAction which allows it to declare that the action happens before, instead of, or after the main AST action, plus the relevant changes to make the plugin action happen at that time automatically.
Differential Revision: http://reviews.llvm.org/D17959
llvm-svn: 263546
show more ...
|
#
fd652b1b |
| 15-Mar-2016 |
Benjamin Kramer <benny.kra@googlemail.com> |
Restrict the hack from r263429 to asan and msan.
The other sanitizers don't have backend passes that rely on value names. Avoid paying the compile time cost of names there.
llvm-svn: 263541
|
#
a0d29406 |
| 15-Mar-2016 |
Teresa Johnson <tejohnson@google.com> |
[ThinLTO] Clang side of renaming of function index (NFC)
This is the companion to an LLVM patch that renamed the function index data structures and files to use the more general module summary index
[ThinLTO] Clang side of renaming of function index (NFC)
This is the companion to an LLVM patch that renamed the function index data structures and files to use the more general module summary index.
(Recommit after fixing LLVM side to add back missed file)
llvm-svn: 263514
show more ...
|