Revision tags: llvmorg-3.6.0-rc2 |
|
#
76c9e098 |
| 23-Jan-2015 |
Sanjay Patel <spatel@rotateright.com> |
Process the -fno-signed-zeros optimization flag (PR20870)
The driver currently accepts but ignores the -fno-signed-zeros flag. This patch passes the flag through and enables 'nsz' fast-math-flag g
Process the -fno-signed-zeros optimization flag (PR20870)
The driver currently accepts but ignores the -fno-signed-zeros flag. This patch passes the flag through and enables 'nsz' fast-math-flag generation in IR.
The existing OpenCL flag for the same functionality is made into an alias here. It may be removed in a subsequent patch.
This should resolve bug 20870 ( http://llvm.org/bugs/show_bug.cgi?id=20870 ); patches for the optimizer were checked in at: http://llvm.org/viewvc/llvm-project?view=revision&revision=225050 http://llvm.org/viewvc/llvm-project?view=revision&revision=224583
Differential Revision: http://reviews.llvm.org/D6873
llvm-svn: 226915
show more ...
|
#
77dc2366 |
| 20-Jan-2015 |
Hans Wennborg <hans@hanshq.net> |
Implement command line options for stack probe space
This code adds the -mstack-probe-size command line option and implements the /Gs compiler switch for clang-cl.
This should fix http://llvm.org/b
Implement command line options for stack probe space
This code adds the -mstack-probe-size command line option and implements the /Gs compiler switch for clang-cl.
This should fix http://llvm.org/bugs/show_bug.cgi?id=21896
Patch by Andrew H!
Differential Revision: http://reviews.llvm.org/D6685
llvm-svn: 226601
show more ...
|
#
cb0d13fc |
| 16-Jan-2015 |
Steven Wu <stevenwu@apple.com> |
Adding option -fno-inline-asm to disallow inline asm
Summary: This patch add a new option to dis-allow all inline asm. Any GCC style inline asm will be reported as an error.
Reviewers: rnk, echrist
Adding option -fno-inline-asm to disallow inline asm
Summary: This patch add a new option to dis-allow all inline asm. Any GCC style inline asm will be reported as an error.
Reviewers: rnk, echristo
Reviewed By: rnk, echristo
Subscribers: bob.wilson, rnk, echristo, rsmith, cfe-commits
Differential Revision: http://reviews.llvm.org/D6870
llvm-svn: 226340
show more ...
|
Revision tags: llvmorg-3.6.0-rc1 |
|
#
0d9593dd |
| 14-Jan-2015 |
Chandler Carruth <chandlerc@gmail.com> |
[cleanup] Re-sort *all* #include lines with llvm/utils/sort_includes.py
Sorry for the noise, I managed to miss a bunch of recent regressions of include orderings here. This should actually sort all
[cleanup] Re-sort *all* #include lines with llvm/utils/sort_includes.py
Sorry for the noise, I managed to miss a bunch of recent regressions of include orderings here. This should actually sort all the includes for Clang. Again, no functionality changed, this is just a mechanical cleanup that I try to run periodically to keep the #include lines as regular as possible across the project.
llvm-svn: 225979
show more ...
|
#
c7af2644 |
| 14-Jan-2015 |
JF Bastien <jfb@google.com> |
Revert "Insert random noops to increase security against ROP attacks (clang)"
This reverts commit: http://reviews.llvm.org/D3393
llvm-svn: 225947
|
#
4cb55703 |
| 14-Jan-2015 |
JF Bastien <jfb@google.com> |
Insert random noops to increase security against ROP attacks (clang)
A pass that adds random noops to X86 binaries to introduce diversity with the goal of increasing security against most return-ori
Insert random noops to increase security against ROP attacks (clang)
A pass that adds random noops to X86 binaries to introduce diversity with the goal of increasing security against most return-oriented programming attacks.
Command line options: -noop-insertion // Enable noop insertion. -noop-insertion-percentage=X // X% of assembly instructions will have a noop prepended (default: 50%, requires -noop-insertion) -max-noops-per-instruction=X // Randomly generate X noops per instruction. ie. roll the dice X times with probability set above (default: 1). This doesn't guarantee X noop instructions.
In addition, the following 'quick switch' in clang enables basic diversity using default settings (currently: noop insertion and schedule randomization; it is intended to be extended in the future). -fdiversify
This is the clang part of the patch. llvm part: D3392
http://reviews.llvm.org/D3393 Patch by Stephen Crane (@rinon)
llvm-svn: 225910
show more ...
|
#
8845952b |
| 12-Jan-2015 |
Alexey Samsonov <vonosmas@gmail.com> |
Reimplement -fsanitize-recover family of flags.
Introduce the following -fsanitize-recover flags: - -fsanitize-recover=<list>: Enable recovery for selected checks or group of checks. It is f
Reimplement -fsanitize-recover family of flags.
Introduce the following -fsanitize-recover flags: - -fsanitize-recover=<list>: Enable recovery for selected checks or group of checks. It is forbidden to explicitly list unrecoverable sanitizers here (that is, "address", "unreachable", "return"). - -fno-sanitize-recover=<list>: Disable recovery for selected checks or group of checks. - -f(no-)?sanitize-recover is now a synonym for -f(no-)?sanitize-recover=undefined,integer and will soon be deprecated.
These flags are parsed left to right, and mask of "recoverable" sanitizer is updated accordingly, much like what we do for -fsanitize= flags. -fsanitize= and -fsanitize-recover= flag families are independent.
CodeGen change: If there is a single UBSan handler function, responsible for implementing multiple checks, which have different recoverable setting, then we emit two handler calls instead of one: the first one for the set of "unrecoverable" checks, another one - for set of "recoverable" checks. If all checks implemented by a handler have the same recoverability setting, then the generated code will be the same.
llvm-svn: 225719
show more ...
|
#
76a4b95a |
| 09-Jan-2015 |
Saleem Abdulrasool <compnerd@compnerd.org> |
Driver: begin threading frontend support for SymbolRewriter
Allow blessed access to the symbol rewriter from the driver. Although the symbol rewriter could be invoked through tools like opt and llc,
Driver: begin threading frontend support for SymbolRewriter
Allow blessed access to the symbol rewriter from the driver. Although the symbol rewriter could be invoked through tools like opt and llc, it would not accessible from the frontend. This allows us to read the rewrite map files in the frontend rather than the backend and enable symbol rewriting for actually performing the symbol interpositioning.
llvm-svn: 225504
show more ...
|
#
6465d4f7 |
| 29-Dec-2014 |
Alexey Samsonov <vonosmas@gmail.com> |
Fix use-after-destruction introduced in r224924.
getMainExecutable() returns a std::string, assigning its result to StringRef immediately creates a dangling pointer. This was detected by half-broken
Fix use-after-destruction introduced in r224924.
getMainExecutable() returns a std::string, assigning its result to StringRef immediately creates a dangling pointer. This was detected by half-broken fast-MSan-bootstrap bot.
llvm-svn: 224956
show more ...
|
#
fd3cc70e |
| 29-Dec-2014 |
Chandler Carruth <chandlerc@gmail.com> |
[multilib] Teach Clang's code about multilib by threading a CLANG_LIBDIR_SUFFIX down from the build system and using that as part of the default resource dir computation.
Without this, essentially n
[multilib] Teach Clang's code about multilib by threading a CLANG_LIBDIR_SUFFIX down from the build system and using that as part of the default resource dir computation.
Without this, essentially nothing that uses the clang driver works when building clang with a libdir suffix. This is probably the single biggest missing piece of support for multilib as without this people could hack clang to end up installed in the correct location, but it would then fail to find its own basic resources. I know of at least one distro that has some variation on this patch to hack around this; hopefully they'll be able to use the libdir suffix functionality directly as the rest of these bits land.
This required fixing a copy of the code to compute Clang's resource directory that is buried inside of the frontend (!!!). It had bitrotted significantly relative to the driver code. I've made it essentially a clone of the driver code in order to keep tests (which use cc1 heavily) passing. This copy should probably just be removed and the frontend taught to always rely on an explicit resource directory from the driver, but that is a much more invasive change for another day.
I've also updated one test which actually encoded the resource directory in its checked output to tolerate multilib suffixes.
Note that this relies on a prior LLVM commit to add a stub to the autoconf build system for this variable.
llvm-svn: 224924
show more ...
|
#
00721504 |
| 23-Dec-2014 |
Nico Weber <nicolasweber@gmx.de> |
Add driver flags -ftrigraphs, -fno-trigraphs.
-trigraphs is now an alias for -ftrigraphs. -fno-trigraphs makes it possible to explicitly disable trigraphs, which couldn't be done before.
clang -
Add driver flags -ftrigraphs, -fno-trigraphs.
-trigraphs is now an alias for -ftrigraphs. -fno-trigraphs makes it possible to explicitly disable trigraphs, which couldn't be done before.
clang -std=c++11 -fno-trigraphs
now builds without GNU extensions, but with trigraphs disabled. Previously, trigraphs were only disabled in GNU modes or with -std=c++1z.
Make the new -f flags the cc1 interface too. This requires changing -trigraphs to -ftrigraphs in a few cc1 tests.
Related to PR21974.
llvm-svn: 224790
show more ...
|
#
b62ba516 |
| 22-Dec-2014 |
Nico Weber <nicolasweber@gmx.de> |
Disable trigraphs in microsoft mode by default. Matches cl.exe.
The default value of Opts.Trigraphs now no longer depends solely on the language input kind, so move the code out of setLangDefaults()
Disable trigraphs in microsoft mode by default. Matches cl.exe.
The default value of Opts.Trigraphs now no longer depends solely on the language input kind, so move the code out of setLangDefaults(). Also make sure that Opts.MSVCCompat is set before the Trigraph code runs.
Related to PR21974.
llvm-svn: 224719
show more ...
|
Revision tags: llvmorg-3.5.1, llvmorg-3.5.1-rc2 |
|
#
fd8de1c3 |
| 16-Dec-2014 |
Rafael Espindola <rafael.espindola@gmail.com> |
Fix handling of invalid -O options.
We were checking the value after truncating it to a bitfield.
Thanks to Yunzhong Gao for noticing it.
llvm-svn: 224378
|
#
24653262 |
| 16-Dec-2014 |
Nick Lewycky <nicholas@mxc.ca> |
Add a new flag, -fspell-checking-limit=<number> to control how many times we'll do spell checking. Note that spell checking will change the produced AST, so we don't automatically change this value w
Add a new flag, -fspell-checking-limit=<number> to control how many times we'll do spell checking. Note that spell checking will change the produced AST, so we don't automatically change this value when someone sets -ferror-limit=. With this, merge test typo-correction-pt2.cpp into typo-correction.cpp.
Remove Sema::UnqualifiedTyposCorrected, a cache of corrected typos. It would only cache typo corrections that didn't provide ValidateCandidate of which there were few left, and it had a bug when we had the same identifier spelled wrong twice. See the last two tests in typo-correction.cpp for cases this fires.
llvm-svn: 224375
show more ...
|
#
3701450b |
| 10-Dec-2014 |
Pekka Jaaskelainen <pekka.jaaskelainen@tut.fi> |
OpenCL C: Add support for a set of floating point arithmetic relaxation flags:
-cl-no-signed-zeros -cl-unsafe-math-optimizations -cl-finite-math-only -cl-fast-relaxed-math
Propagate the info to FP
OpenCL C: Add support for a set of floating point arithmetic relaxation flags:
-cl-no-signed-zeros -cl-unsafe-math-optimizations -cl-finite-math-only -cl-fast-relaxed-math
Propagate the info to FP instruction flags as well as function attributes where they are available.
llvm-svn: 223928
show more ...
|
#
9acb99e3 |
| 10-Dec-2014 |
Richard Smith <richard-llvm@metafoo.co.uk> |
Reinstate r223753, reverted in r223759 due to breakage of clang-tools-extra. Original commit message:
[modules] Add experimental -fmodule-map-file-home-is-cwd flag to -cc1.
For files named by -fmod
Reinstate r223753, reverted in r223759 due to breakage of clang-tools-extra. Original commit message:
[modules] Add experimental -fmodule-map-file-home-is-cwd flag to -cc1.
For files named by -fmodule-map-file=, and files found by 'extern module' directives, this flag specifies that we should resolve filenames relative to the current working directory rather than relative to the directory in which the module map file resides. This is aimed at fixing path handling, in particular for relative -I paths, when building modules that represent components of the current project (rather than libraries installed on the current system, which the current project has as dependencies, where we'd typically expect the module map files to be looked up implicitly).
llvm-svn: 223913
show more ...
|
#
00a4da73 |
| 09-Dec-2014 |
Duncan P. N. Exon Smith <dexonsmith@apple.com> |
Revert "[modules] Add experimental -fmodule-map-file-home-is-cwd flag to -cc1."
This reverts commit r223753. It broke the Green Dragon build for a few hours:
http://lab.llvm.org:8080/green/job/c
Revert "[modules] Add experimental -fmodule-map-file-home-is-cwd flag to -cc1."
This reverts commit r223753. It broke the Green Dragon build for a few hours:
http://lab.llvm.org:8080/green/job/clang-stage1-cmake-RA-incremental_build/2259/ http://lab.llvm.org:8080/green/job/clang-stage1-cmake-RA-incremental_build/2259/consoleFull#43901905849ba4694-19c4-4d7e-bec5-911270d8a58c
I suspect `clang-tools-extra` just needs a follow-up for an API change, but I'm not the right one to look into it.
llvm-svn: 223759
show more ...
|
#
0152e781 |
| 09-Dec-2014 |
Richard Smith <richard-llvm@metafoo.co.uk> |
[modules] Add experimental -fmodule-map-file-home-is-cwd flag to -cc1.
For files named by -fmodule-map-file=, and files found by 'extern module' directives, this flag specifies that we should resolv
[modules] Add experimental -fmodule-map-file-home-is-cwd flag to -cc1.
For files named by -fmodule-map-file=, and files found by 'extern module' directives, this flag specifies that we should resolve filenames relative to the current working directory rather than relative to the directory in which the module map file resides. This is aimed at fixing path handling, in particular for relative -I paths, when building modules that represent components of the current project (rather than libraries installed on the current system, which the current project has as dependencies, where we'd typically expect the module map files to be looked up implicitly).
llvm-svn: 223753
show more ...
|
Revision tags: llvmorg-3.5.1-rc1 |
|
#
4a89a06d |
| 06-Dec-2014 |
Richard Smith <richard-llvm@metafoo.co.uk> |
PR21217: Slightly more eagerly load -fmodule-map-file= files and provide diagnostics if they don't exist. Based on a patch by John Thompson!
llvm-svn: 223561
|
#
bbc01785 |
| 03-Dec-2014 |
Reid Kleckner <reid@kleckner.net> |
CUDA host device code with two code paths
Summary: Allow CUDA host device functions with two code paths using __CUDA_ARCH__ to differentiate between code path being compiled.
For example: __host_
CUDA host device code with two code paths
Summary: Allow CUDA host device functions with two code paths using __CUDA_ARCH__ to differentiate between code path being compiled.
For example: __host__ __device__ void host_device_function(void) { #ifdef __CUDA_ARCH__ device_only_function(); #else host_only_function(); #endif }
Patch by Jacques Pienaar.
Reviewed By: rnk
Differential Revision: http://reviews.llvm.org/D6457
llvm-svn: 223271
show more ...
|
#
21a0f557 |
| 25-Nov-2014 |
Daniel Jasper <djasper@google.com> |
Add flag -f(no-)modules-implicit-maps.
This suppresses the implicit search for files called 'module.modulemap' and similar.
llvm-svn: 222745
|
#
561e0aa1 |
| 20-Nov-2014 |
Anastasia Stulova <anastasia.stulova@arm.com> |
Extended list of valid frontend options with '-cl-std=CL2.0'.
This option sets language mode for the compilation of a source file to be OpenCL v2.0.
Example: clang -cc1 -cl-std=CL2.0 myfile.cl llvm
Extended list of valid frontend options with '-cl-std=CL2.0'.
This option sets language mode for the compilation of a source file to be OpenCL v2.0.
Example: clang -cc1 -cl-std=CL2.0 myfile.cl llvm-svn: 222444
show more ...
|
#
e070b99b |
| 14-Nov-2014 |
Reid Kleckner <reid@kleckner.net> |
Remove -fseh-exceptions in favor of checking the triple
This option was misleading because it looked like it enabled the language feature of SEH (__try / __except), when this option was really contr
Remove -fseh-exceptions in favor of checking the triple
This option was misleading because it looked like it enabled the language feature of SEH (__try / __except), when this option was really controlling which EH personality function to use. Mingw only supports SEH and SjLj EH on x86_64, so we can simply do away with this flag.
llvm-svn: 221963
show more ...
|
#
75b4f9e1 |
| 11-Nov-2014 |
Kostya Serebryany <kcc@google.com> |
Introduce -fsanitize-coverage=N flag
Summary: This change makes the asan-coverge (formerly -mllvm -asan-coverge) accessible via a clang flag. Companion patch to LLVM is http://reviews.llvm.org/D6152
Introduce -fsanitize-coverage=N flag
Summary: This change makes the asan-coverge (formerly -mllvm -asan-coverge) accessible via a clang flag. Companion patch to LLVM is http://reviews.llvm.org/D6152
Test Plan: regression tests, chromium
Reviewers: samsonov
Reviewed By: samsonov
Subscribers: cfe-commits
Differential Revision: http://reviews.llvm.org/D6153
llvm-svn: 221719
show more ...
|
#
a041610f |
| 11-Nov-2014 |
Alexey Samsonov <vonosmas@gmail.com> |
[Sanitizer] Refactor sanitizer options in LangOptions.
Get rid of ugly SanitizerOptions class thrust into LangOptions: * Make SanitizeAddressFieldPadding a regular language option, and rely on def
[Sanitizer] Refactor sanitizer options in LangOptions.
Get rid of ugly SanitizerOptions class thrust into LangOptions: * Make SanitizeAddressFieldPadding a regular language option, and rely on default behavior to initialize/reset it. * Make SanitizerBlacklistFile a regular member LangOptions. * Introduce the helper class "SanitizerSet" to represent the set of enabled sanitizers and make it a member of LangOptions. It is exactly the entity we want to cache and modify in CodeGenFunction, for instance. We'd also be able to reuse SanitizerSet in CodeGenOptions for storing the set of recoverable sanitizers, and in the Driver to represent the set of sanitizers turned on/off by the commandline flags.
No functionality change.
llvm-svn: 221653
show more ...
|