| Commit message (Collapse) | Author | Age | Files | Lines | 
| ... |  | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
The thread, memory, dataflow and function sanitizers are now diagnosed if
enabled explicitly on an unsupported platform.  Unsupported sanitizers which
are enabled implicitly (as part of a larger group) are silently disabled.  As a
side effect, this makes SanitizerArgs parsing toolchain-dependent (and thus
essentially reverts r188058), and moves SanitizerArgs ownership to ToolChain.
Differential Revision: http://llvm-reviews.chandlerc.com/D1990
llvm-svn: 193875
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
Enables the clang driver to begin targeting specific CPUs. Introduced a
"generic" CPU which will ensure that the optional FP feature is enabled
by default when it gets to LLVM, without needing any extra arguments.
Cortex-A53 and A-57 are also introduced with tests, although backend
handling of them does not yet exist.
llvm-svn: 193740
 | 
| | 
| 
| 
| 
| 
|  | 
We'll need to intercept a few function in libm.
llvm-svn: 193644
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
which doesn't use that multilib. As a consequence, fix Clang's support
for cross compiling environments that were relying on this quirk to
ensure the correct library search path ordering.
This also re-instates the new test cases from Rafael's r193528 for
cross-compiling to ARM on Ubuntu 13.10 without any of the changes to the
existing test cases (they were no longer needed).
This solution was the result of a lot of IRC debugging and trying to
understand *exactly* what quirk was being relied upon. It took some time
for me to figure out that it was the use of 'lib32' is a multilib that
was throwing a wrench in the works.
In case you are thinking that its silly to use a multilib of 'lib' at
all, entertainingly, GCC does so as well (you can see it with the
.../lib/../lib/crt1.o pattern it uses), and the 2-phase sequence of
search paths (multilib followed by non-multilib) has observable (if
dubious) consequences. =/ Yuck.
llvm-svn: 193601
 | 
| | 
| 
| 
| 
| 
| 
| 
|  | 
Allow users to disable or enable CRC subtarget feature.
Differential Revision: http://llvm-reviews.chandlerc.com/D2037
llvm-svn: 193600
 | 
| | 
| 
| 
|  | 
llvm-svn: 193596
 | 
| | 
| 
| 
| 
| 
| 
| 
|  | 
actually a MIPS-only hack to shim in random ABI directory suffixes in
numerous places throughout the toolchain's path search. It shouldn't
appear to be anything more general or useful.
llvm-svn: 193595
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
|  | 
record what is *actually* going on here as the comments existing in the
code are confusing at best, and in places outright misleading.
The API is even more misleading. Yay.
llvm-svn: 193577
 | 
| | 
| 
| 
| 
| 
| 
| 
|  | 
This reverts commit r193528 (and fixes).
It broke Chandler's setup.
llvm-svn: 193554
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
With this patch we correctly determine that ubuntu's ARM tree is not biarch
and use "lib" istead of "lib32".
Without this patch the search inside the arm tree for the crt files was failing
and we would end up trying to use the i686 ones in lib32.
llvm-svn: 193528
 | 
| | 
| 
| 
| 
| 
| 
|  | 
We don't have any checks that depend on the version of fedora, so we can
simplify.
llvm-svn: 193423
 | 
| | 
| 
| 
|  | 
llvm-svn: 193419
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
|  | 
Although we wire up a bit for v8fp for macro setting
purposes, we don't set a macro yet. Need to ask list
about that.
Change-Id: Ic9819593ce00882fbec72757ffccc6f0b18160a0
llvm-svn: 193367
 | 
| | 
| 
| 
| 
|  | 
Change-Id: If9b649c92e7196e3e791948545dc80901a0761eb
llvm-svn: 193365
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
Adds some Cortex-A53 strings where they were missing before.
Cortex-A57 is entirely new to clang.
Doesn't touch code only used by Darwin, in consequence of which
one of the A53 lines has been removed.
Change-Id: I5edb58f6eae93947334787e26a8772c736de6483
llvm-svn: 193364
 | 
| | 
| 
| 
| 
| 
| 
|  | 
These arch arguments are used for embedded targets (obviously) which need a
different calling convention to iOS.
llvm-svn: 193328
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
check using the ubsan runtime) and -fsanitize=local-bounds (for the middle-end
check which inserts traps).
Remove -fsanitize=local-bounds from -fsanitize=undefined. It does not produce
useful diagnostics and has false positives (PR17635), and is not a good
compromise position between UBSan's checks and ASan's checks.
Map -fbounds-checking to -fsanitize=local-bounds to restore Clang's historical
behavior for that flag.
llvm-svn: 193205
 | 
| | 
| 
| 
| 
| 
|  | 
Also fixes some funky formatting.
llvm-svn: 193079
 | 
| | 
| 
| 
| 
| 
|  | 
divide in the mode that we are compiling in (depending on the target features), not defined if we don't. Should be compatible with the GCC conterpart. Also adding a -hwdiv option to overide the default behavior.
llvm-svn: 193074
 | 
| | 
| 
| 
| 
|  | 
Review: http://llvm-reviews.chandlerc.com/D1974
llvm-svn: 193069
 | 
| | 
| 
| 
|  | 
llvm-svn: 193057
 | 
| | 
| 
| 
| 
| 
|  | 
some linkers depend on it.
llvm-svn: 193048
 | 
| | 
| 
| 
| 
| 
| 
|  | 
pick up the common bits ubsan actually needs. Also remove whole-archive when we
aren't trying to re-export the symbols.
llvm-svn: 193022
 | 
| | 
| 
| 
|  | 
llvm-svn: 193006
 | 
| | 
| 
| 
| 
| 
| 
| 
|  | 
This is a common extension on Windows, and now clang will assemble them
instead of treating them as linker input which is the default for unknown
file types.
llvm-svn: 192919
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
This adds support for outputing the assembly to a file during compilation.
It does this by changing the compilation pipeling to not use the integrated
assembler, and keep the intermediate assembler file.
Differential Revision: http://llvm-reviews.chandlerc.com/D1946
llvm-svn: 192902
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
These options specify 64-bit FP registers and 32-bit FP registers respectively.
When using -mfp32, the FPU has 16x double-precision registers overlapping with
the 32x single-precision registers (each double-precision register overlaps
two single-precision registers).
When using -mfp64, the FPU has 32x double-precision registers overlapping with
the 32x single-precision registers (each double-precision register overlaps
with one single-precision register and has an additional 32-bits).
MSA requires -mfp64.
llvm-svn: 192899
 | 
| | 
| 
| 
| 
| 
|  | 
This should have no functional behavior.
llvm-svn: 192838
 | 
| | 
| 
| 
|  | 
llvm-svn: 192817
 | 
| | 
| 
| 
|  | 
llvm-svn: 192815
 | 
| | 
| 
| 
| 
| 
| 
|  | 
runtime. It will be silently ignored and regardless
of deployment target. // rdar://14803286
llvm-svn: 192719
 | 
| | 
| 
| 
| 
| 
|  | 
Adjust linkage to make more sense for older releases.
llvm-svn: 192615
 | 
| | 
| 
| 
| 
| 
| 
| 
|  | 
Use -no-struct-path-tbaa to turn it off.
This is the same as r191695, which was reverted because it depends on a
commit that has issues.
llvm-svn: 192497
 | 
| | 
| 
| 
|  | 
llvm-svn: 192437
 | 
| | 
| 
| 
|  | 
llvm-svn: 192412
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
This fixes getSystemRegistryString() in WindowsToolChain.cpp to
make sure that the VS version that it picks has an InstallDir.
Previously we would look for the highest version os VS and check
for InstallDir afterwards.
Patch by Yaron Keren!
llvm-svn: 192374
 | 
| | 
| 
| 
| 
| 
| 
|  | 
The patch reviewed by Rafael Espindola.
http://llvm-reviews.chandlerc.com/D1843
llvm-svn: 192343
 | 
| | 
| 
| 
| 
| 
| 
| 
|  | 
This exposes a 32-bit view of the registry even when Clang is built as a 64-bit
program. Since Visual Studio is a 32-bit application, this is necessary for us
to find it.
llvm-svn: 192331
 | 
| | 
| 
| 
|  | 
llvm-svn: 192293
 | 
| | 
| 
| 
| 
| 
|  | 
MIPS-arch.
llvm-svn: 192292
 | 
| | 
| 
| 
| 
| 
|  | 
options are aliases now.
llvm-svn: 192290
 | 
| | 
| 
| 
|  | 
llvm-svn: 192034
 | 
| | 
| 
| 
| 
| 
|  | 
general solution.
llvm-svn: 191951
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
|  | 
-static. So do not turn off the PIC flag if -static passed to the
driver in case of MIPS target.
http://llvm.org/bugs/show_bug.cgi?id=14693
llvm-svn: 191947
 | 
| | 
| 
| 
|  | 
llvm-svn: 191900
 | 
| | 
| 
| 
|  | 
llvm-svn: 191736
 | 
| | 
| 
| 
| 
| 
|  | 
-relaxed-aliasing.
llvm-svn: 191725
 | 
| | 
| 
| 
| 
| 
|  | 
Use -no-struct-path-tbaa to turn it off.
llvm-svn: 191695
 | 
| | 
| 
| 
|  | 
llvm-svn: 191640
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
multi-library path suffix.
The code calculates MIPS toolchain specific multi-lib path suffixes like
mips16/soft-float/el is moved to the separate function
findMultiLibSuffix(). This function called during GCC installation
detection and result is stored for the future using.
The patch reviewed by Rafael Espindola.
http://llvm-reviews.chandlerc.com/D1738
llvm-svn: 191612
 |