Revision tags: llvmorg-5.0.1-rc2 |
|
#
14e8a5a3 |
| 21-Nov-2017 |
Hans Wennborg <hans@hanshq.net> |
Add -finstrument-function-entry-bare flag
This is an instrumentation flag that's similar to -finstrument-functions, but it only inserts calls on function entry, the calls are inserted post-inlining,
Add -finstrument-function-entry-bare flag
This is an instrumentation flag that's similar to -finstrument-functions, but it only inserts calls on function entry, the calls are inserted post-inlining, and they don't take any arugments.
This is intended for users who want to instrument function entry with minimal overhead.
(-pg would be another alternative, but forces frame pointer emission and affects link flags, so is probably best left alone to be used for generating gcov data.)
Differential revision: https://reviews.llvm.org/D40276
llvm-svn: 318785
show more ...
|
#
523edb0a |
| 20-Nov-2017 |
Erich Keane <erich.keane@intel.com> |
Revert r318669/318694
Broke some libclang tests, so reverting for now.
llvm-svn: 318698
|
#
5c086c76 |
| 20-Nov-2017 |
Erich Keane <erich.keane@intel.com> |
For Linux/gnu compatibility, preinclude <stdc-predef.h> if the file is available
As reported in llvm bugzilla 32377. Here’s a patch to add preinclude of stdc-predef.h.
The gcc documentation says “O
For Linux/gnu compatibility, preinclude <stdc-predef.h> if the file is available
As reported in llvm bugzilla 32377. Here’s a patch to add preinclude of stdc-predef.h.
The gcc documentation says “On GNU/Linux, <stdc-predef.h> is pre-included.” See https://gcc.gnu.org/gcc-4.8/porting_to.html;
The preinclude is inhibited with –ffreestanding.
Basically I fixed the failing test cases by adding –ffreestanding which inhibits this behavior.
I fixed all the failing tests, including some in extra/test, there's a separate patch for that which is linked here
Patch By: mibintc
Differential Revision: https://reviews.llvm.org/D34158
llvm-svn: 318669
show more ...
|
#
402b4310 |
| 20-Nov-2017 |
Craig Topper <craig.topper@intel.com> |
[CodeGen] Move Reciprocals option from TargetOptions to CodeGenOptions
Diffrential Revision: https://reviews.llvm.org/D40226
llvm-svn: 318662
|
#
fa03a6a0 |
| 20-Nov-2017 |
Ivan A. Kosarev <ikosarev@accesssoftek.com> |
[Driver] Add a cc1 flag for the new TBAA metadata format
This patch starts a series of changes to add support for the new TBAA metadata format proposed in this llvm-dev thread:
http://lists.llvm.or
[Driver] Add a cc1 flag for the new TBAA metadata format
This patch starts a series of changes to add support for the new TBAA metadata format proposed in this llvm-dev thread:
http://lists.llvm.org/pipermail/llvm-dev/2017-November/118748.html
Differential Revision: https://reviews.llvm.org/D39955
llvm-svn: 318644
show more ...
|
#
76c26c1d |
| 14-Nov-2017 |
Hans Wennborg <hans@hanshq.net> |
Switch -mcount and -finstrument-functions to emit EnterExitInstrumenter attributes
This updates -mcount to use the new attribute names (LLVM r318195), and switches over -finstrument-functions to als
Switch -mcount and -finstrument-functions to emit EnterExitInstrumenter attributes
This updates -mcount to use the new attribute names (LLVM r318195), and switches over -finstrument-functions to also use these attributes rather than inserting instrumentation in the frontend.
It also adds a new flag, -finstrument-functions-after-inlining, which makes the cygprofile instrumentation get inserted after inlining rather than before.
Differential Revision: https://reviews.llvm.org/D39331
llvm-svn: 318199
show more ...
|
#
5c651485 |
| 07-Nov-2017 |
Sriraman Tallam <tmsriram@google.com> |
New clang option -fno-plt which avoids the PLT and lazy binding while making external calls.
Differential Revision: https://reviews.llvm.org/D39079
llvm-svn: 317605
|
#
a957ffbc |
| 02-Nov-2017 |
Erich Keane <erich.keane@intel.com> |
Add default calling convention support for regcall.
Added support for regcall as default calling convention. Also added code to exclude main when applying default calling conventions.
Patch-By: ean
Add default calling convention support for regcall.
Added support for regcall as default calling convention. Also added code to exclude main when applying default calling conventions.
Patch-By: eandrews
Differential Revision: https://reviews.llvm.org/D39210
llvm-svn: 317268
show more ...
|
#
634c601f |
| 31-Oct-2017 |
Vlad Tsyrklevich <vlad@tsyrklevich.net> |
[CFI] Add CFI-icall pointer type generalization
Summary: This change allows generalizing pointers in type signatures used for cfi-icall by enabling the -fsanitize-cfi-icall-generalize-pointers flag.
[CFI] Add CFI-icall pointer type generalization
Summary: This change allows generalizing pointers in type signatures used for cfi-icall by enabling the -fsanitize-cfi-icall-generalize-pointers flag. This works by 1) emitting an additional generalized type signature metadata node for functions and 2) llvm.type.test()ing for the generalized type for translation units with the flag specified.
This flag is incompatible with -fsanitize-cfi-cross-dso because it would require emitting twice as many type hashes which would increase artifact size.
Reviewers: pcc, eugenis
Reviewed By: pcc
Subscribers: kcc
Differential Revision: https://reviews.llvm.org/D39358
llvm-svn: 317044
show more ...
|
Revision tags: llvmorg-5.0.1-rc1 |
|
#
daae9528 |
| 20-Oct-2017 |
Richard Smith <richard-llvm@metafoo.co.uk> |
Revert r316193.
This patch breaks users using -fno-canonical-prefixes, for whom resolving symlinks is not acceptable.
llvm-svn: 316195
|
#
90161dad |
| 19-Oct-2017 |
Peter Wu <peter@lekensteyn.nl> |
Try to shorten system header paths when using -MD depfiles
GCC tries to shorten system headers in depfiles using its real path (resolving components like ".." and following symlinks). Mimic this fea
Try to shorten system header paths when using -MD depfiles
GCC tries to shorten system headers in depfiles using its real path (resolving components like ".." and following symlinks). Mimic this feature to ensure that the Ninja build tool detects the correct dependencies when a symlink changes directory levels, see https://github.com/ninja-build/ninja/issues/1330
An option to disable this feature is added in case "these changed header paths may conflict with some compilation environments", see https://gcc.gnu.org/ml/gcc-patches/2012-09/msg00287.html
Note that the original feature request for GCC (https://gcc.gnu.org/bugzilla/show_bug.cgi?id=52974) also included paths preprocessed output (-E) and diagnostics. That is not implemented now since I am not sure if it breaks something else.
Differential Revision: https://reviews.llvm.org/D37954
llvm-svn: 316193
show more ...
|
#
9b3d6272 |
| 16-Oct-2017 |
Wei Mi <wmi@google.com> |
[Bitfield] Add an option to access bitfield in a fine-grained manner.
Currently all the consecutive bitfields are wrapped as a large integer unless there is unamed zero sized bitfield in between. Th
[Bitfield] Add an option to access bitfield in a fine-grained manner.
Currently all the consecutive bitfields are wrapped as a large integer unless there is unamed zero sized bitfield in between. The patch provides an alternative manner which makes the bitfield to be accessed as separate memory location if it has legal integer width and is naturally aligned. Such separate bitfield may split the original consecutive bitfields into subgroups of consecutive bitfields, and each subgroup will be wrapped as an integer. Now This is all controlled by an option -ffine-grained-bitfield-accesses. The alternative of bitfield access manner can improve the access efficiency of those bitfields with legal width and being aligned, but may reduce the chance of load/store combining of other bitfields, so it depends on how the bitfields are defined and actually accessed to choose when to use the option. For now the option is off by default.
Differential revision: https://reviews.llvm.org/D36562
llvm-svn: 315915
show more ...
|
#
606093a5 |
| 15-Oct-2017 |
Aaron Ballman <aaron@aaronballman.com> |
Add -f[no-]double-square-bracket-attributes as new driver options to control use of [[]] attributes in all language modes. This is the initial implementation of WG14 N2165, which is a proposal to add
Add -f[no-]double-square-bracket-attributes as new driver options to control use of [[]] attributes in all language modes. This is the initial implementation of WG14 N2165, which is a proposal to add [[]] attributes to C2x, but also allows you to enable these attributes in C++98, or disable them in C++11 or later.
llvm-svn: 315856
show more ...
|
#
729379a1 |
| 06-Oct-2017 |
Saleem Abdulrasool <compnerd@compnerd.org> |
Driver: hoist the `wchar_t` handling to the driver
Move the logic for determining the `wchar_t` type information into the driver. Rather than passing the single bit of information of `-fshort-wchar
Driver: hoist the `wchar_t` handling to the driver
Move the logic for determining the `wchar_t` type information into the driver. Rather than passing the single bit of information of `-fshort-wchar` indicate to the frontend the desired type of `wchar_t` through a new `-cc1` option of `-fwchar-type` and indicate the signedness through `-f{,no-}signed-wchar`. This replicates the current logic which was spread throughout Basic into the `RenderCharacterOptions`.
Most of the changes to the tests are to ensure that the frontend uses the correct type. Add a new test set under `test/Driver/wchar_t.c` to ensure that we calculate the proper types for the various cases.
llvm-svn: 315126
show more ...
|
#
a8280811 |
| 29-Sep-2017 |
Paul Robinson <paul.robinson@sony.com> |
[PS4] Tidy up some debug-tuning v. triple decision-making.
llvm-svn: 314558
|
#
1787f812 |
| 28-Sep-2017 |
Paul Robinson <paul.robinson@sony.com> |
[DWARF] Allow forward declarations of a class template instantiation to have child entries describing the template parameters. This will be on by default for SCE tuning.
Differential Revision: http
[DWARF] Allow forward declarations of a class template instantiation to have child entries describing the template parameters. This will be on by default for SCE tuning.
Differential Revision: https://reviews.llvm.org/D14358
llvm-svn: 314444
show more ...
|
#
bb26f86e |
| 14-Sep-2017 |
Matt Morehouse <mascasa@google.com> |
[MSan] Add flag to disable use-after-dtor.
Summary: Flag is -fno-sanitize-use-after-dtor.
Reviewers: vitalybuka, eugenis, kcc
Reviewed By: vitalybuka, eugenis
Subscribers: cfe-commits
Differenti
[MSan] Add flag to disable use-after-dtor.
Summary: Flag is -fno-sanitize-use-after-dtor.
Reviewers: vitalybuka, eugenis, kcc
Reviewed By: vitalybuka, eugenis
Subscribers: cfe-commits
Differential Revision: https://reviews.llvm.org/D37867
llvm-svn: 313314
show more ...
|
#
b52e2366 |
| 12-Sep-2017 |
Peter Collingbourne <peter@pcc.me.uk> |
IR: Represent -ggnu-pubnames with a flag on the DICompileUnit.
This allows the flag to be persisted through to LTO.
Differential Revision: https://reviews.llvm.org/D37655
llvm-svn: 313078
|
Revision tags: llvmorg-5.0.0, llvmorg-5.0.0-rc5 |
|
#
d30446fd |
| 31-Aug-2017 |
Boris Kolpackov <boris@codesynthesis.com> |
[modules] Add ability to specify module name to module file mapping (reapply)
Extend the -fmodule-file option to support the [<name>=]<file> value format. If the name is omitted, then the old semant
[modules] Add ability to specify module name to module file mapping (reapply)
Extend the -fmodule-file option to support the [<name>=]<file> value format. If the name is omitted, then the old semantics is preserved (the module file is loaded whether needed or not). If the name is specified, then the mapping is treated as just another prebuilt module search mechanism, similar to -fprebuilt-module-path, and the module file is only loaded if actually used (e.g., via import). With one exception: this mapping also overrides module file references embedded in other modules (which can be useful if module files are moved/renamed as often happens during remote compilation).
This override semantics requires some extra work: we now store the module name in addition to the file name in the serialized AST representation.
Reviewed By: rsmith
Differential Revision: https://reviews.llvm.org/D35020
llvm-svn: 312220
show more ...
|
#
db68911b |
| 30-Aug-2017 |
Victor Leschuk <vleschuk@accesssoftek.com> |
Revert r312105 [modules] Add ability to specify module name to module file mapping
Looks like it breaks win10 builder.
llvm-svn: 312112
|
#
7a71b4b6 |
| 30-Aug-2017 |
Boris Kolpackov <boris@codesynthesis.com> |
[modules] Add ability to specify module name to module file mapping
Extend the -fmodule-file option to support the [<name>=]<file> value format. If the name is omitted, then the old semantics is pre
[modules] Add ability to specify module name to module file mapping
Extend the -fmodule-file option to support the [<name>=]<file> value format. If the name is omitted, then the old semantics is preserved (the module file is loaded whether needed or not). If the name is specified, then the mapping is treated as just another prebuilt module search mechanism, similar to -fprebuilt-module-path, and the module file is only loaded if actually used (e.g., via import). With one exception: this mapping also overrides module file references embedded in other modules (which can be useful if module files are moved/renamed as often happens during remote compilation).
This override semantics requires some extra work: we now store the module name in addition to the file name in the serialized AST representation.
Reviewed By: rsmith
Differential Revision: https://reviews.llvm.org/D35020
llvm-svn: 312105
show more ...
|
Revision tags: llvmorg-5.0.0-rc4 |
|
#
6d2b6f0a |
| 29-Aug-2017 |
Evgeniy Stepanov <eugeni.stepanov@gmail.com> |
Minimal runtime for UBSan.
Summary: An implementation of ubsan runtime library suitable for use in production.
Minimal attack surface. * No stack traces. * Definitely no C++ demangling. * No UBSAN_
Minimal runtime for UBSan.
Summary: An implementation of ubsan runtime library suitable for use in production.
Minimal attack surface. * No stack traces. * Definitely no C++ demangling. * No UBSAN_OPTIONS=log_file=/path (very suid-unfriendly). And no UBSAN_OPTIONS in general. * as simple as possible
Minimal CPU and RAM overhead. * Source locations unnecessary in the presence of (split) debug info. * Values and types (as in A+B overflows T) can be reconstructed from register/stack dumps, once you know what type of error you are looking at. * above two items save 3% binary size.
When UBSan is used with -ftrap-function=abort, sometimes it is hard to reason about failures. This library replaces abort with a slightly more informative message without much extra overhead. Since ubsan interface in not stable, this code must reside in compiler-rt.
Reviewers: pcc, kcc
Subscribers: srhines, mgorny, aprantl, krytarowski, llvm-commits
Differential Revision: https://reviews.llvm.org/D36810
llvm-svn: 312029
show more ...
|
#
f667ad5f |
| 26-Aug-2017 |
Richard Smith <richard-llvm@metafoo.co.uk> |
Add flag to request Clang is ABI-compatible with older versions of itself
This patch adds a flag -fclang-abi-compat that can be used to request that Clang attempts to be ABI-compatible with some old
Add flag to request Clang is ABI-compatible with older versions of itself
This patch adds a flag -fclang-abi-compat that can be used to request that Clang attempts to be ABI-compatible with some older version of itself.
This is provided on a best-effort basis; right now, this can be used to undo the ABI change in r310401, reverting Clang to its prior C++ ABI for pass/return by value of class types affected by that change, and to undo the ABI change in r262688, reverting Clang to using integer registers rather than SSE registers for passing <1 x long long> vectors. The intent is that we will maintain this backwards compatibility path as we make ABI-breaking fixes in future.
The reversion to the old behavior for r310401 is also applied to the PS4 target since that change is not part of its platform ABI (which is essentially to do whatever Clang 3.2 did).
llvm-svn: 311823
show more ...
|
Revision tags: llvmorg-5.0.0-rc3 |
|
#
5e97f234 |
| 24-Aug-2017 |
Dehao Chen <dehao@google.com> |
Expose -mllvm -accurate-sample-profile to clang.
Summary: With accurate sample profile, we can do more aggressive size optimization. For some size-critical application, this can reduce the text size
Expose -mllvm -accurate-sample-profile to clang.
Summary: With accurate sample profile, we can do more aggressive size optimization. For some size-critical application, this can reduce the text size by 20%
Reviewers: davidxl, rsmith
Reviewed By: davidxl, rsmith
Subscribers: mehdi_amini, eraman, sanjoy, cfe-commits
Differential Revision: https://reviews.llvm.org/D37091
llvm-svn: 311707
show more ...
|
#
5c7fc769 |
| 18-Aug-2017 |
Matt Morehouse <mascasa@google.com> |
[SanitizerCoverage] Add stack depth tracing instrumentation.
Summary: Augment SanitizerCoverage to insert maximum stack depth tracing for use by libFuzzer. The new instrumentation is enabled by the
[SanitizerCoverage] Add stack depth tracing instrumentation.
Summary: Augment SanitizerCoverage to insert maximum stack depth tracing for use by libFuzzer. The new instrumentation is enabled by the flag -fsanitize-coverage=stack-depth and is compatible with the existing trace-pc-guard coverage. The user must also declare the following global variable in their code: thread_local uintptr_t __sancov_lowest_stack
https://bugs.llvm.org/show_bug.cgi?id=33857
Reviewers: vitalybuka, kcc
Reviewed By: vitalybuka
Subscribers: kubamracek, hiraditya, cfe-commits, llvm-commits
Differential Revision: https://reviews.llvm.org/D36839
llvm-svn: 311186
show more ...
|