Commit Graph

1459 Commits

Author SHA1 Message Date
Alp Toker c1ba5d5c46 Implement -Wframe-larger-than backend diagnostic
Add driver and frontend support for the GCC -Wframe-larger-than=bytes warning.
This is the first GCC-compatible backend diagnostic built around LLVM's
reporting feature.

This commit adds infrastructure to perform reverse lookup from mangled names
emitted after LLVM IR generation. We use that to resolve precise locations and
originating AST functions, lambdas or block declarations to produce seamless
codegen-guided diagnostics.

An associated change, StringMap now maintains unique mangled name strings
instead of allocating copies. This is a net memory saving in C++ and a small
hit for C where we no longer reuse IdentifierInfo storage, pending further
optimisation.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@210293 91177308-0d34-0410-b5e6-96231b3b80d8
2014-06-05 22:10:59 +00:00
Evgeniy Stepanov c84a5329f6 Fix driver warning about -pthread on Android.
-pthread is no-op on Android. Suppress the unused argument warning.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@210253 91177308-0d34-0410-b5e6-96231b3b80d8
2014-06-05 11:41:39 +00:00
Richard Smith bb97c3d5d0 [ubsan] Don't add a --dynamic-list for ubsan symbols when building a shared
library. That results in the linker resolving all references to weak symbols in
the DSO to the definition from within that DSO. Ironically, this rarely causes
observable problems, except that it causes ubsan's own dynamic type check to
spuriously fail (because we fail to properly merge type_info object names).


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@210220 91177308-0d34-0410-b5e6-96231b3b80d8
2014-06-04 23:28:46 +00:00
Diego Novillo a3f8ad86d8 Add flags -Rpass-missed and -Rpass-analysis.
Summary:
These two flags are in the same family as -Rpass, but are used in
different situations.

-Rpass-missed is used by optimizers to inform the user when they tried
to apply an optimization but couldn't (or wouldn't).

-Rpass-analysis is used by optimizers to report analysis results back
to the user (e.g., why the transformation could not be applied).

Depends on D3682.

Reviewers: rsmith

Subscribers: cfe-commits

Differential Revision: http://reviews.llvm.org/D3683

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@209839 91177308-0d34-0410-b5e6-96231b3b80d8
2014-05-29 19:55:06 +00:00
Bob Wilson a7e8472be2 Make the -mno-global-merge option work for arm64/aarch64. rdar://17024719
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@209836 91177308-0d34-0410-b5e6-96231b3b80d8
2014-05-29 19:43:02 +00:00
Evgeniy Stepanov 21bce1ccb7 -pthread does not translate to -lpthread on Android.
There is no libpthread.so, and pthread interface is implemented in libc.so.
This mirrors gcc behavior.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@209731 91177308-0d34-0410-b5e6-96231b3b80d8
2014-05-28 12:53:34 +00:00
Tim Northover 8d681a2f93 AArch64/ARM64: rename ARM64 components to AArch64
This keeps Clang consistent with backend naming conventions.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@209579 91177308-0d34-0410-b5e6-96231b3b80d8
2014-05-24 12:52:07 +00:00
Tim Northover 646ddb51d2 AArch64/ARM64: update Clang after AArch64 removal.
A few (mostly CodeGen) parts of Clang were tightly coupled to the
AArch64 backend. Now that it's gone, they will not even compile.

I've also deduplicated RUN lines in many of the AArch64 tests. This
might improve "make check-all" time noticably: some of those NEON
tests were monsters.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@209578 91177308-0d34-0410-b5e6-96231b3b80d8
2014-05-24 12:51:25 +00:00
Rafael Espindola 6d1cc57727 Don't reduce the stack protector level given -fstack-protector.
Before -fstack-protector would always force a level of 1, even if the default
was 2.

Patch by Brad Smith.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@209479 91177308-0d34-0410-b5e6-96231b3b80d8
2014-05-22 22:57:39 +00:00
Alexey Samsonov 9cd6c51cd8 Unify the name of compiler-rt builtins library on Linux.
Call it "libclang_rt.builtins-<arch>.a" to be consistent
with sanitizers/profile libraries naming. Modify Makefile
and CMake build systems and Clang driver accordingly.

Fixes PR19822.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@209474 91177308-0d34-0410-b5e6-96231b3b80d8
2014-05-22 21:13:30 +00:00
Tim Northover 8b409a0877 MachO: perform ARM ABI detection even for non-Darwin triples.
When "-arch armv7m" is specified, we want "aapcs", for example.

rdar://problem/16581138

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@209434 91177308-0d34-0410-b5e6-96231b3b80d8
2014-05-22 12:54:30 +00:00
Oliver Stannard 066aa1a095 Pass -gdwarf-N options to integrated assembler
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@209124 91177308-0d34-0410-b5e6-96231b3b80d8
2014-05-19 13:39:13 +00:00
Saleem Abdulrasool d1376d1370 Driver: force restricted IT blocks for Windows on ARM
Windows on ARM expects ARMv8 (restricted IT) conditional instructions only.
Force enable the restricted IT mode via the backend option when targeting WoA.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@209086 91177308-0d34-0410-b5e6-96231b3b80d8
2014-05-18 06:42:02 +00:00
Craig Topper 03208adb78 [C++11] Use 'nullptr'. Driver edition.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@209069 91177308-0d34-0410-b5e6-96231b3b80d8
2014-05-17 16:56:41 +00:00
Duncan P. N. Exon Smith 5b07cece1b InstrProf: Look for the PIC-version of the profile runtime
If `-shared` is specified, pull in a PIC-version of the profile runtime,
which was added to compiler-rt in r208947.  I'm hoping this will get the
bots on my side.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@208948 91177308-0d34-0410-b5e6-96231b3b80d8
2014-05-16 04:09:41 +00:00
Reid Kleckner 00b2b6dc04 clang-cl: Fall back immediately if /GR and /fallback were both passed
None of our tests use /fallback, so this lets us gradually add RTTI
support without breaking projects using /fallback.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@208787 91177308-0d34-0410-b5e6-96231b3b80d8
2014-05-14 16:03:05 +00:00
Nico Weber 8277d9c946 Support -masm= flag for x86 targets.
`clang -S -o - file.c -masm=att` will write assembly to stdout in at&t syntax
(the default), `-masm=intel` will instead output intel style asm.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@208683 91177308-0d34-0410-b5e6-96231b3b80d8
2014-05-13 11:11:24 +00:00
Alexey Samsonov 53ba0df283 [ASan] Fixup for r208610: link in asan_cxx library on Windows
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@208625 91177308-0d34-0410-b5e6-96231b3b80d8
2014-05-12 20:20:20 +00:00
Alexey Samsonov 161a85d878 [ASan] Split static ASan runtime in two parts: asan and asan_cxx.
asan_cxx containts replacements for new/delete operators, and should
only be linked in C++ mode. We plan to start building this part
with exception support to make new more standard-compliant.

See https://code.google.com/p/address-sanitizer/issues/detail?id=295
for more details.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@208610 91177308-0d34-0410-b5e6-96231b3b80d8
2014-05-12 18:39:51 +00:00
Nico Weber c2b54ef6c9 Wrap at 80 columns. No code change.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@208485 91177308-0d34-0410-b5e6-96231b3b80d8
2014-05-11 01:04:02 +00:00
Matheus Almeida b9ec38bf4e [mips] Pass nan2008 info to the back-end.
Summary: The initial support for NaN2008 was added to the back-end in r206396.

Reviewers: atanasyan

Reviewed By: atanasyan

Differential Revision: http://reviews.llvm.org/D3448

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@208220 91177308-0d34-0410-b5e6-96231b3b80d8
2014-05-07 16:16:07 +00:00
Joerg Sonnenberger 63b875dd61 Drop libgcc and default to libc++ for NetBSD/ARM on 6.99.40+.
Don't bother with keeping the old support for x86_64 in 6.99.23+, just
use a single range. Update test cases for the always-on --eh-frame-hdr.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@208170 91177308-0d34-0410-b5e6-96231b3b80d8
2014-05-07 08:45:26 +00:00
Kevin Qin 600a7d7213 [PATCH] [ARM64] Enable alignment control option in front-end for ARM64.
This patch is to get "-mno-unaligned-access" and "-munaligned-access"
work in front-end for ARM64 target.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@208075 91177308-0d34-0410-b5e6-96231b3b80d8
2014-05-06 09:51:32 +00:00
Christian Pirker a337b33ab3 Simplify getARMCPUForMArch() and make it more consistent
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@207956 91177308-0d34-0410-b5e6-96231b3b80d8
2014-05-05 08:48:18 +00:00
Chad Rosier bea199a705 [driver] Enable the slp vectorizer at -Oz.
PR19568

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@207858 91177308-0d34-0410-b5e6-96231b3b80d8
2014-05-02 18:41:57 +00:00
Bradley Smith 32f676ea19 [ARM64/AArch64] Hook up CRC32 subtarget feature to the driver
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@207841 91177308-0d34-0410-b5e6-96231b3b80d8
2014-05-02 15:17:51 +00:00
Robert Lytton 6f10763ffb XCore target: fix handling of -g0 flag
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@207833 91177308-0d34-0410-b5e6-96231b3b80d8
2014-05-02 09:33:25 +00:00
Logan Chien 03102d591a Android uses -fpic for arm64 as well.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@207642 91177308-0d34-0410-b5e6-96231b3b80d8
2014-04-30 12:18:12 +00:00
Rafael Espindola 42e599fb3f Drop non-cfi assembly support from clang.
After this patch clang will ignore -fdwarf2-cfi-asm and -ffno-dwarf2-cfi-asm and
always print assembly that uses cfi directives.

In llvm, MC itself supports cfi since the end of 2010 (support started
in r119972, is reported in the 2.9 release notes).

In binutils the support has been around for much longer. It looks like
support started to be added in May 2003. It is available in 2.15
(31-Aug-2011, 2.14 is from 12-Jun-2003).

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@207602 91177308-0d34-0410-b5e6-96231b3b80d8
2014-04-30 02:22:09 +00:00
Logan Chien 32f64aa449 Android uses -fpic for aarch64.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@207567 91177308-0d34-0410-b5e6-96231b3b80d8
2014-04-29 18:18:58 +00:00
Alexey Volkov a41049b43e Add comments regarding isPIEDefault usage for r207520
Differential Revision: http://reviews.llvm.org/D2668


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@207521 91177308-0d34-0410-b5e6-96231b3b80d8
2014-04-29 12:07:34 +00:00
Alexey Volkov ab5d05bc91 Pass -pie to linker when generating executable on Android
This fixes problem with LTO on Android.

Differential Revision: http://reviews.llvm.org/D2668


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@207520 91177308-0d34-0410-b5e6-96231b3b80d8
2014-04-29 10:25:20 +00:00
Chad Rosier bf6a66cd29 [driver] Disable the slp vectorizer at -O0, -O1, and -Oz. This mirrors the
behavior of the loop vectorizer, which is enabled at -O2, -O3, -O4, -Ofast
and -Os.
PR19568

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@207433 91177308-0d34-0410-b5e6-96231b3b80d8
2014-04-28 19:30:57 +00:00
Hans Wennborg 8a6fa5cade clang-cl: /fallback only applies to C or C++ files
We would previously hit an assert if using /fallback with an .ll file.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@207234 91177308-0d34-0410-b5e6-96231b3b80d8
2014-04-25 16:44:17 +00:00
Hans Wennborg b67bacf5c6 clang-cl: pass -debug flag to the linker when compiling with debug info
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@207233 91177308-0d34-0410-b5e6-96231b3b80d8
2014-04-25 16:24:19 +00:00
James Molloy 7b6cff5e08 [ARM64] Plumb in big-endian - add arm64_be to the many switches where it was missing.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206462 91177308-0d34-0410-b5e6-96231b3b80d8
2014-04-17 12:51:23 +00:00
James Molloy 99c0a323fd [ARM64] Default to the 'generic' CPU, unless -arch is present for backwards compatibility.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206461 91177308-0d34-0410-b5e6-96231b3b80d8
2014-04-17 12:51:17 +00:00
Diego Novillo d31ddfcf61 Add support for optimization reports.
Summary:
This patch adds a new flag -Rpass=. The flag indicates the name
of the optimization pass that should emit remarks stating when it
made a transformation to the code.

This implements the design I proposed in:

https://docs.google.com/document/d/1FYUatSjZZO-zmFBxjOiuOzAy9mhHA8hqdvklZv68WuQ/edit?usp=sharing

Other changes:
- Add DiagnosticIDs::isRemark(). Use it in printDiagnosticOptions to
  print "-R" instead of "-W" in the diagnostic message.

- In BackendConsumer::OptimizationRemarkHandler, get a SourceLocation
  object out of the file name, line and column number. Use that location
  in the call to Diags.Report().

- When -Rpass is used without debug info a note is emitted alerting
  the user that they need to use -gline-tables-only -gcolumn-info to
  get this information.

CC: llvm-commits

Differential Revision: http://llvm-reviews.chandlerc.com/D3226

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206401 91177308-0d34-0410-b5e6-96231b3b80d8
2014-04-16 16:54:24 +00:00
James Molloy 6eeb8eb072 [ARM64] Plumb in the -mfpu= flag.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206395 91177308-0d34-0410-b5e6-96231b3b80d8
2014-04-16 15:33:56 +00:00
Quentin Colombet 525967bb80 [Driver][ARM64] Make sure the default CPU is passed to the assembler.
<rdar://problem/16573920>


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206227 91177308-0d34-0410-b5e6-96231b3b80d8
2014-04-15 00:27:35 +00:00
Daniel Jasper 0e1ed6bc35 Add -fmodules-strict-decluse to check that all headers are in modules
Review: http://reviews.llvm.org/D3335

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206027 91177308-0d34-0410-b5e6-96231b3b80d8
2014-04-11 11:47:45 +00:00
Reid Kleckner c61cae9c89 clang-cl: Disable TBAA by default for MSVC compatibility
MSVC doesn't have an option to enable TBAA, so make -fstrict-aliasing
and -fno-strict-aliasing available in clang-cl.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@205924 91177308-0d34-0410-b5e6-96231b3b80d8
2014-04-09 20:07:39 +00:00
David Majnemer 15d1581446 Fix a typo introduced in r205716
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@205717 91177308-0d34-0410-b5e6-96231b3b80d8
2014-04-07 16:19:27 +00:00
David Majnemer c9f61e8be9 clang-cl: make /Gw map to -fdata-sections
Note that /Gy no longer implies -fdata-sections.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@205716 91177308-0d34-0410-b5e6-96231b3b80d8
2014-04-07 16:14:38 +00:00
Saleem Abdulrasool a92b40825a Driver: add target definition for Windows on ARM
This introduces the definitions needed for the Windows on ARM target.  Add
target definitions for both the MSVC environment and the MSVC + Itanium C++ ABI
environment.  The Visual Studio definitions correspond to the definitions
provided by Visual Studio 2012.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@205650 91177308-0d34-0410-b5e6-96231b3b80d8
2014-04-04 20:31:19 +00:00
Logan Chien 5fdd7751b7 Code cleanup (re-indent)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@205536 91177308-0d34-0410-b5e6-96231b3b80d8
2014-04-03 13:12:44 +00:00
Alexey Samsonov a9a63dc859 Add support for dynamic ASan runtime (on Linux) to Clang driver.
Based on http://llvm-reviews.chandlerc.com/D3043 by Yuri Gribov!


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@205310 91177308-0d34-0410-b5e6-96231b3b80d8
2014-04-01 13:31:10 +00:00
David Blaikie e3989ea116 Warn when requesting compress-debug-sections and zlib is not available
Another shot in the dark, since I do have zlib installed. Will be
watching the bots for fallout.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@205265 91177308-0d34-0410-b5e6-96231b3b80d8
2014-03-31 23:29:38 +00:00
Tim Northover 7e0e8ef787 ARM64: initial clang support commit.
This adds Clang support for the ARM64 backend. There are definitely
still some rough edges, so please bring up any issues you see with
this patch.

As with the LLVM commit though, we think it'll be more useful for
merging with AArch64 from within the tree.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@205100 91177308-0d34-0410-b5e6-96231b3b80d8
2014-03-29 15:09:45 +00:00
Tim Northover 899bcb6b9b Driver: implement addClangWarningOptions
This function allows certain platforms to enable or disable diagnostics
by default.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@205095 91177308-0d34-0410-b5e6-96231b3b80d8
2014-03-29 13:16:12 +00:00
Duncan P. N. Exon Smith 97140c9270 InstrProf: Emit runtime hook directly in IRGen
-u behaviour is apparently not portable between linkers (see cfe-commits
discussions for r204379 and r205012).  I've moved the logic to IRGen,
where it should have been in the first place.

I don't have a Linux system to test this on, so it's possible this logic
*still* doesn't pull in the instrumented profiling runtime on Linux.

I'm in the process of getting tests going on the compiler-rt side
(llvm-commits "[PATCH] InstrProf: Add initial compiler-rt test").  Once
we have tests for the full flow there, the runtime logic should get a
whole lot less brittle.

<rdar://problem/16458307>

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@205023 91177308-0d34-0410-b5e6-96231b3b80d8
2014-03-28 17:53:22 +00:00
Duncan P. N. Exon Smith d12127df41 Revert "Link in profile library on Linux using --whole-archive"
This reverts commit r205012.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@205022 91177308-0d34-0410-b5e6-96231b3b80d8
2014-03-28 17:53:17 +00:00
Alexey Samsonov 8d29648d80 Link in profile library on Linux using --whole-archive
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@205012 91177308-0d34-0410-b5e6-96231b3b80d8
2014-03-28 15:39:08 +00:00
Christian Pirker 37a9afe9eb Add ARM big endian Target (armeb, thumbeb)
Reviewed at http://llvm-reviews.chandlerc.com/D3096



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@205008 91177308-0d34-0410-b5e6-96231b3b80d8
2014-03-28 14:40:46 +00:00
Saleem Abdulrasool 1e57f17deb Use the new Windows environment for target detection
This follows the LLVM change to canonicalise the Windows target triple
spellings.  Rather than treating each Windows environment as a single entity,
the environments are now modelled properly as an environment.  This is a
mechanical change to convert the triple use to reflect that change.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@204978 91177308-0d34-0410-b5e6-96231b3b80d8
2014-03-27 22:50:18 +00:00
David Blaikie d87684dddb Support for -Wa,-compress-debug-sections.
Also, while I'm here, support -nocompress-debug-sections too.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@204959 91177308-0d34-0410-b5e6-96231b3b80d8
2014-03-27 20:47:30 +00:00
Duncan P. N. Exon Smith 67b42c1649 InstrProf: Pull in runtime on non-Darwin
r204379 changed the way the profile runtime gets pulled in, but missed
updating non-Darwin targets.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@204939 91177308-0d34-0410-b5e6-96231b3b80d8
2014-03-27 16:20:02 +00:00
David Blaikie a31456a646 Use an option alias to implement -gmlt
Review feedback from Reid Kleckner on r203603.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@204755 91177308-0d34-0410-b5e6-96231b3b80d8
2014-03-25 20:42:27 +00:00
Benjamin Kramer d53585be8f Fix an logic error in the clang driver preventing crtfastmath.o from linking when -Ofast is used without -ffast-math
In gcc using -Ofast forces linking of crtfastmath.o.
In the current clang crtfastmath.o is only linked when -ffast-math/-funsafe-math-optimizations passed. It can lead to performance issues, when using only -Ofast without explicit -ffast-math (I faced with it).
My patch fixes inconsistency with gcc behaviour and also introduces few tests on it.

Patch by Zinovy Nis!

Differential Revision: http://llvm-reviews.chandlerc.com/D3114

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@204742 91177308-0d34-0410-b5e6-96231b3b80d8
2014-03-25 18:02:07 +00:00
Hans Wennborg b5893c8b7b clang-cl: make /Gy imply -fdata-sections in addition to -ffunction-sections
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@204736 91177308-0d34-0410-b5e6-96231b3b80d8
2014-03-25 17:50:25 +00:00
Hans Wennborg d13c37832f clang-cl: Forward /Gy or /Gy- when falling back to cl.exe
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@204723 91177308-0d34-0410-b5e6-96231b3b80d8
2014-03-25 14:48:54 +00:00
Will Schmidt ba6e4af2e5 Update the parameters passed to the assembler and linker for
the PPC64LE target.  Specifically:
(assembler) adds/uses  -mppc64 -mlittle-endian
(linker) adds/uses  elf64lppc

Testcase included.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@204626 91177308-0d34-0410-b5e6-96231b3b80d8
2014-03-24 17:10:37 +00:00
Alexey Samsonov 2b7cab0c2e Kill -faddress-sanitizer, -fthread-sanitizer and -fcatch-undefined-behavior flags.
These flags are deprecated since at least Clang 3.3. Users should instead
use -fsanitize= with appropriate values.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@204330 91177308-0d34-0410-b5e6-96231b3b80d8
2014-03-20 10:48:29 +00:00
Viktor Kutuzov 6aa757590a Add support for sanitizers arguments on FreeBSD
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@204129 91177308-0d34-0410-b5e6-96231b3b80d8
2014-03-18 09:36:50 +00:00
Christian Pirker a5ee2ebbdf AArch64_be specific clang target settings
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@203918 91177308-0d34-0410-b5e6-96231b3b80d8
2014-03-14 12:15:45 +00:00
Argyrios Kyrtzidis b18df473d3 [Modules] Emit the module file paths as dependencies of the PCH when we are building one.
This is because the PCH is tied to the module files, if one of the module files changes or gets removed
the build system should re-build the PCH file.

rdar://16321245

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@203885 91177308-0d34-0410-b5e6-96231b3b80d8
2014-03-14 03:07:38 +00:00
Joerg Sonnenberger 5f44722c26 Always use --eh-frame-hdr on NetBSD, even for -static.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@203742 91177308-0d34-0410-b5e6-96231b3b80d8
2014-03-13 00:42:01 +00:00
Ben Langmuir 310c3dc9ef Add an option -fmodules-validate-system-headers
When enabled, always validate the system headers when loading a module.
The end result of this is that when these headers change, we will notice
and rebuild the module.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@203630 91177308-0d34-0410-b5e6-96231b3b80d8
2014-03-12 00:06:17 +00:00
David Blaikie 640884e00a Driver: Support -gmlt as an alias for -gline-tables-only
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@203603 91177308-0d34-0410-b5e6-96231b3b80d8
2014-03-11 21:05:26 +00:00
Alexey Bataev fec65ff9a6 [OPENMP] Fixed linked libraries for libiomp5 on Linux
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@203212 91177308-0d34-0410-b5e6-96231b3b80d8
2014-03-07 07:43:52 +00:00
Saleem Abdulrasool b12c514753 Update for LLVM API change
Use the new getObjectFormat/setObjectFormat instead of Environment now that the
file format is a separate field.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@203161 91177308-0d34-0410-b5e6-96231b3b80d8
2014-03-06 20:47:19 +00:00
Alexey Bataev 67fafb973c [OPENMP] Added option -fopenmp=libiomp5|libgomp
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@203081 91177308-0d34-0410-b5e6-96231b3b80d8
2014-03-06 05:43:53 +00:00
Benjamin Kramer 6fd5cdde30 Pass llvm::Triple objects by const reference.
Copying isn't cheap as it contains a std::string.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@202880 91177308-0d34-0410-b5e6-96231b3b80d8
2014-03-04 19:31:42 +00:00
Argyrios Kyrtzidis 977d67c59b Introduce '-fmodules-user-build-path' which accepts the "canonical" path to a user workspace build.
This is used to avoid conflicts with user modules with the same name from different workspaces.

rdar://16042513

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@202683 91177308-0d34-0410-b5e6-96231b3b80d8
2014-03-03 08:12:05 +00:00
Rafael Espindola 42303467cd Add support for OpenBSD SPARC assembler.
Patch by Brad Smith.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@202462 91177308-0d34-0410-b5e6-96231b3b80d8
2014-02-28 01:55:21 +00:00
Roman Divacky 8181ff0ece Pass the sparc architecture variant to the assembler.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@202179 91177308-0d34-0410-b5e6-96231b3b80d8
2014-02-25 18:45:49 +00:00
Hans Wennborg df760270f9 clang-cl: use -fno-rtti by default
Generating RTTI in the MS ABI is currently not supported, and the failures
are confusing to users, so let's disable it by default for now.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@202178 91177308-0d34-0410-b5e6-96231b3b80d8
2014-02-25 18:36:22 +00:00
Roman Divacky 016c30178d Give sparcv9 the ability to set the target cpu. Change it from accepting
-march which doesnt exist on sparc gcc to -mcpu. While here adjust a
few tests to not write an unused temporary file.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@202177 91177308-0d34-0410-b5e6-96231b3b80d8
2014-02-25 18:35:30 +00:00
Christian Pirker ee2e36b515 Add AArch64 big endian Target (aarch64_be)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@202151 91177308-0d34-0410-b5e6-96231b3b80d8
2014-02-25 13:51:00 +00:00
Alexey Samsonov 40a81ef14e Respect ToolChain::isPIEDefault() in constructing link job on Linux and FreeBSD.
Partially based on http://llvm-reviews.chandlerc.com/D2644 by Viktor Kutuzov.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@202150 91177308-0d34-0410-b5e6-96231b3b80d8
2014-02-25 13:26:03 +00:00
Alexey Samsonov 2d24dc3d64 Factor adding sanitizer linker flags into a separate function and make it less OS-specific
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@202148 91177308-0d34-0410-b5e6-96231b3b80d8
2014-02-25 12:43:43 +00:00
Richard Barton 7615ef6fe7 Implement -fno-short-wchar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@202058 91177308-0d34-0410-b5e6-96231b3b80d8
2014-02-24 18:43:28 +00:00
Saleem Abdulrasool 8c702d1f44 clang: add -f{no-,}integrate-as as consistent parameters
The integrated assembler is a feature.  This makes the new flags the default
option, and the previous versions aliases.  Ideally, at some point the aliases
would be entirely removed.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201963 91177308-0d34-0410-b5e6-96231b3b80d8
2014-02-23 00:40:30 +00:00
Saleem Abdulrasool 9c1883ccfc clang: forward -no-integrated-as from the driver
Forward the -no-integrated-as option to -cc1 rather than simply invoking the
appropriate tool.  This is useful since this option has been overloaded to
permit disabling of parsing inline assembly at the MC layer.

This re-applies the previous version of the patch with a renaming of the driver
option to the public name rather than the internal name (-target vs -triple).
The actual failure is fixed separately of an overly aggressive negative pattern
match in the MIPS driver tests.  It also fixes the incorrect test for targets
that have the integrated assembler disabled by default.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201960 91177308-0d34-0410-b5e6-96231b3b80d8
2014-02-22 23:37:58 +00:00
Saleem Abdulrasool e1ee32c1a7 Revert "clang: forward -no-integrated-as from the driver"
This seems to break a MIPS test.  Revert until I figure out the root cause.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201954 91177308-0d34-0410-b5e6-96231b3b80d8
2014-02-22 22:24:00 +00:00
Saleem Abdulrasool 5f6a23df29 clang: forward -no-integrated-as from the driver
Forward the -no-integrated-as option to -cc1 rather than simply invoking the
appropriate tool.  This is useful since this option has been overloaded to
permit disabling of parsing inline assembly at the MC layer.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201952 91177308-0d34-0410-b5e6-96231b3b80d8
2014-02-22 21:50:09 +00:00
Joerg Sonnenberger 4590e1108f Default to ARMv5e for NetBSD/EABI, ARMv4 for APCS.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201894 91177308-0d34-0410-b5e6-96231b3b80d8
2014-02-21 21:53:33 +00:00
Oliver Stannard 1400d5b9da Add support for FPv4-SP to the clang driver
Added two new options for -mfpu when targetting ARM:
* fpv4-sp-d16
* fp4-sp-d16

The first is the same spelling as gcc.

The lack of a leading `v' is correct, this is consistent with ARM's
documentation and gcc's spelling of the option.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201846 91177308-0d34-0410-b5e6-96231b3b80d8
2014-02-21 10:39:15 +00:00
Alexey Samsonov 43ad7ade30 Get rid of obsolete addProfileRT(), generalize the relevant addProfileRTLinux() to all OS
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201789 91177308-0d34-0410-b5e6-96231b3b80d8
2014-02-20 13:57:37 +00:00
Joerg Sonnenberger 8fd4888fe2 Hook up NetBSD/sparc and NetBSD/sparc64 as and ld invocations.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201730 91177308-0d34-0410-b5e6-96231b3b80d8
2014-02-19 22:40:18 +00:00
Joerg Sonnenberger 41da9695b1 GC now unused variable.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201728 91177308-0d34-0410-b5e6-96231b3b80d8
2014-02-19 22:17:01 +00:00
Joerg Sonnenberger 791ab30643 Use a switch for the architecture specific logic in
netbsd::Assemble::ConstructJob.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201725 91177308-0d34-0410-b5e6-96231b3b80d8
2014-02-19 22:16:19 +00:00
Reid Kleckner 0fcf59c5a5 clang-cl: Pass /Z7 when we fallback to cl with debug info enabled
Clang itself only emits CodeView line tables, so it seems more
consistent to ask cl.exe for the same format.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201721 91177308-0d34-0410-b5e6-96231b3b80d8
2014-02-19 22:05:59 +00:00
Joerg Sonnenberger eaed9a427e Refactor -KPIC handling for as invocation.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201719 91177308-0d34-0410-b5e6-96231b3b80d8
2014-02-19 21:58:52 +00:00
Renato Golin f2e6535198 Add FreeBSD ARM EABI hard-float support
Patch by Andrew Turner.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201662 91177308-0d34-0410-b5e6-96231b3b80d8
2014-02-19 10:44:07 +00:00
Adrian Prantl c0e27313d2 Revert "Debug info: Make DWARF4 the default for Darwin, too."
I'm holding this change to give maintainers of Darwin buildbots more time
to update their toolchains.

This reverts commit r201375.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201520 91177308-0d34-0410-b5e6-96231b3b80d8
2014-02-17 17:40:52 +00:00
Evgeniy Stepanov a9352713ff Enable generation of unwind tables when building with sanitizers.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201391 91177308-0d34-0410-b5e6-96231b3b80d8
2014-02-14 08:56:25 +00:00
Jiangning Liu 03f294995f Enable AArch64 NEON by default.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201384 91177308-0d34-0410-b5e6-96231b3b80d8
2014-02-14 04:37:46 +00:00
Eric Christopher 9330356642 Add a command line option -gdwarf-aranges that will turn on emitting
the dwarf .debug_aranges section.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201379 91177308-0d34-0410-b5e6-96231b3b80d8
2014-02-14 01:27:03 +00:00
Adrian Prantl 6df4eb9cf3 Debug info: Make DWARF4 the default for Darwin, too.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201375 91177308-0d34-0410-b5e6-96231b3b80d8
2014-02-14 00:29:33 +00:00
Robert Lytton 1beb994338 XCore target pass -v flag to assembler & linker
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201312 91177308-0d34-0410-b5e6-96231b3b80d8
2014-02-13 10:40:12 +00:00
Robert Lytton a7a73f747d add comment explaining previous commit
see 'XCore target -fexceptions flag handling'

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201311 91177308-0d34-0410-b5e6-96231b3b80d8
2014-02-13 10:38:56 +00:00
Robert Lytton 80eb669f00 XCore target -fexceptions flag handling
XCore target has -fno-exception as the default option
Pass on "-fexceptions" flag to xcc (linker)

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201310 91177308-0d34-0410-b5e6-96231b3b80d8
2014-02-13 10:34:44 +00:00
Renato Golin 0f242938ea Remove spurious default case to silent sanitizer
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201309 91177308-0d34-0410-b5e6-96231b3b80d8
2014-02-13 10:26:33 +00:00
Renato Golin 98964dff1d Add EXPERIMENTAL --rtlib=compiler-rt to GNU Clang
This commit is not strictly correct nor accounts for all uses (shared
objects, for example), but it allows one to test the compiler-rt library
on GNU targets.

Using this patch to run the test-suite has already shown me problems
on ARM. Since this is a Darwin-only flag, nobody is using it, so it
shouldn't be a problem.

I will need extension to deal with the shared cases, but since we're
not compiling libclang_rt.so, that's not yet applicable. Many other
problems will have to be fixed first in compiler-rt (such as removing
the 'arch' name from it and making it trully multi-arch, moving it to
the default lib directory, make both .a and .so variants, etc).

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201307 91177308-0d34-0410-b5e6-96231b3b80d8
2014-02-13 10:01:16 +00:00
Reid Kleckner dd6709eec1 MS ABI: Implement #pragma vtordisp() and clang-cl /vdN
These features are new in VS 2013 and are necessary in order to layout
std::ostream correctly.  Currently we have an ABI incompatibility when
self-hosting with the 2013 stdlib in our convertible_fwd_ostream wrapper
in gtest.

This change adds another implicit attribute, MSVtorDispAttr, because
implicit attributes are currently the best way to make sure the
information stays on class templates through instantiation.

Reviewers: majnemer

Differential Revision: http://llvm-reviews.chandlerc.com/D2746

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201274 91177308-0d34-0410-b5e6-96231b3b80d8
2014-02-12 23:50:26 +00:00
Dmitri Gribenko 337c8c682f Add an option to allow Clang verify source files for a module only once during
the build

When Clang loads the module, it verifies the user source files that the module
was built from.  If any file was changed, the module is rebuilt.  There are two
problems with this:
1. correctness: we don't verify system files (there are too many of them, and
   stat'ing all of them would take a lot of time);
2. performance: the same module file is verified again and again during a
   single build.

This change allows the build system to optimize source file verification.  The
idea is based on the fact that while the project is being built, the source
files don't change.  This allows us to verify the module only once during a
single build session.  The build system passes a flag,
-fbuild-session-timestamp=, to inform Clang of the time when the build started.
The build system also requests to enable this feature by passing
-fmodules-validate-once-per-build-session.  If these flags are not passed, the
behavior is not changed.  When Clang verifies the module the first time, it
writes out a timestamp file.  Then, when Clang loads the module the second
time, it finds a timestamp file, so it can compare the verification timestamp
of the module with the time when the build started.  If the verification
timestamp is too old, the module is verified again, and the timestamp file is
updated.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201224 91177308-0d34-0410-b5e6-96231b3b80d8
2014-02-12 10:33:14 +00:00
Amara Emerson a5c3f063db [ARM] Fix NEON wrongly being enabled with soft-float when targeting armv8/Cortex-A53/A57.
This was caused by r200708 which enabled the crypto feature for these cores.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201223 91177308-0d34-0410-b5e6-96231b3b80d8
2014-02-12 10:22:35 +00:00
Jonathan Roelofs ddccd4eca1 Add Multilib selection machinery
This patch improves the support for picking Multilibs from gcc installations.
It also provides a better approximation for the flags '-print-multi-directory'
and '-print-multi-lib'.

This reverts r201203 (i.e. re-applying r201202 with small fixes in
unittests/CMakeLists.txtto make the build bots happy).

review: http://llvm-reviews.chandlerc.com/D2538


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201205 91177308-0d34-0410-b5e6-96231b3b80d8
2014-02-12 03:21:20 +00:00
Jonathan Roelofs 56c7cf67c6 Revert 201202
Breaks cmake configure of new unit tests directory


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201203 91177308-0d34-0410-b5e6-96231b3b80d8
2014-02-12 01:36:51 +00:00
Jonathan Roelofs 1b6afd89e6 Add Multilib selection machinery
This patch improves the support for picking Multilibs from gcc installations.
It also provides a better approximation for the flags '-print-multi-directory'
and '-print-multi-lib'.

review: http://llvm-reviews.chandlerc.com/D2538


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201202 91177308-0d34-0410-b5e6-96231b3b80d8
2014-02-12 01:29:25 +00:00
David Majnemer 69d6b398b6 MS ABI: Add support for the -vm{b,g,s,m,v} flags
These flags control the inheritance model initially used by the
translation unit.

Differential Revision: http://llvm-reviews.chandlerc.com/D2741


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201175 91177308-0d34-0410-b5e6-96231b3b80d8
2014-02-11 21:05:00 +00:00
Robert Lytton 330676481e XCore target: Pass through "-fverbose-asm" flag to xcc assembler.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201141 91177308-0d34-0410-b5e6-96231b3b80d8
2014-02-11 10:34:45 +00:00
Josh Magee 3ab3daec81 [stackprotector] Add command line option -fstack-protector-strong
This option has the following effects:
 * It adds the sspstrong IR attribute to each function within the CU.
 * It defines the macro __SSP_STRONG__ with the value of 2.

Differential Revision: http://llvm-reviews.chandlerc.com/D2717


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201120 91177308-0d34-0410-b5e6-96231b3b80d8
2014-02-11 01:35:14 +00:00
Argyrios Kyrtzidis 229253a443 Revert r194097: "With this patch -Wwrite-strings is still implemented with the terrible
hack of passing -fconst-strings to -cc1"

Passing or not a language option based on diagnostic settings is a bad idea, it breaks
using a PCH that was compiled with different diagnostic settings.

Also add a test case to make sure we don't regress.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@200964 91177308-0d34-0410-b5e6-96231b3b80d8
2014-02-07 08:33:28 +00:00
Joerg Sonnenberger 8bc7719d6b Use correct ld emulation for EABI hardware float triple on NetBSD.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@200946 91177308-0d34-0410-b5e6-96231b3b80d8
2014-02-06 21:04:32 +00:00
Ben Langmuir 847330dafd Move -verify-pch to use VerifyJobAction
Use the verify hook rather than the compile hook to represent the
-verify-pch action, and move the exising --verify-debug-info action
into its own subclass of VerifyJobAction.  Incidentally change the name
printed by -ccc-print-phases for --verify-debug-info.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@200938 91177308-0d34-0410-b5e6-96231b3b80d8
2014-02-06 18:53:25 +00:00
Ben Langmuir e9e34e28c5 Add a CC1 option -verify-pch
This option will:
- load the given pch file
- verify it is not out of date by stat'ing dependencies, and
- return 0 on success and non-zero on error

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@200884 91177308-0d34-0410-b5e6-96231b3b80d8
2014-02-05 22:21:15 +00:00
Evgeniy Stepanov d60b3cecb4 Fix handling of -fno-function-sections, -fno-data-sections in clang driver.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@200685 91177308-0d34-0410-b5e6-96231b3b80d8
2014-02-03 11:11:37 +00:00
Joerg Sonnenberger bb8ec69f1c Handle O32/N64 ABIs for NetBSD/MIPS64. From Matt Thomas.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@200668 91177308-0d34-0410-b5e6-96231b3b80d8
2014-02-02 22:59:16 +00:00
Joerg Sonnenberger a5b33da343 Use a switch for the emulation handling.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@200666 91177308-0d34-0410-b5e6-96231b3b80d8
2014-02-02 22:50:34 +00:00
Joerg Sonnenberger 2b063246ac Handle compat support for EABI/old APCS compatibility on NetBSD/ARM.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@200665 91177308-0d34-0410-b5e6-96231b3b80d8
2014-02-02 22:47:37 +00:00
Joerg Sonnenberger 55d60b69b5 Replace hasMipsN32ABIArg by hasMipsABIArg to make it easier to add
support for o32 and n64.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@200662 91177308-0d34-0410-b5e6-96231b3b80d8
2014-02-02 22:40:33 +00:00
Joerg Sonnenberger 4cb2dd7403 Pass down -mcpu for external assembler in thumb mode, too. From Matt Thomas.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@200661 91177308-0d34-0410-b5e6-96231b3b80d8
2014-02-02 22:37:14 +00:00
Joerg Sonnenberger ae1b7c222c Minor formatting improvement.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@200659 91177308-0d34-0410-b5e6-96231b3b80d8
2014-02-02 22:36:13 +00:00
Evgeniy Stepanov 930a25a7be Revert r200555, r200545.
These changes make it impossible to use ARM EHABI for stack unwinding without
enabling exceptions and break AddressSanitizer on ARM.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@200627 91177308-0d34-0410-b5e6-96231b3b80d8
2014-02-02 10:39:45 +00:00
Renato Golin 5595d21466 Last option on -fexception for arm-disable-ehabi
Previous commit would have a following flag overriding the behaviour
and not taken care of.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@200555 91177308-0d34-0410-b5e6-96231b3b80d8
2014-01-31 16:19:26 +00:00
Renato Golin 49d840629a Connect -fno-exceptions to -arm-disable-ehabi
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@200545 91177308-0d34-0410-b5e6-96231b3b80d8
2014-01-31 14:13:20 +00:00
Renato Golin 9b80314d79 ARM RT libs with generic name
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@200538 91177308-0d34-0410-b5e6-96231b3b80d8
2014-01-31 11:47:28 +00:00
Alexey Bataev 011b53f9b5 Make x86 Android default target CPUs compatible with GCC (http://llvm-reviews.chandlerc.com/D2655)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@200510 91177308-0d34-0410-b5e6-96231b3b80d8
2014-01-31 04:07:13 +00:00
Alexey Bataev 03d5952c3c Turn on PIC by default on Android (http://llvm-reviews.chandlerc.com/D2603)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@200290 91177308-0d34-0410-b5e6-96231b3b80d8
2014-01-28 06:30:35 +00:00
David Blaikie 19771c74b5 Driver: support -fno-debug-types-section to override -fdebug-types-section
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@200236 91177308-0d34-0410-b5e6-96231b3b80d8
2014-01-27 18:52:43 +00:00
Simon Atanasyan ad62472289 [Mips] Change default CPU for MIPS 32/64 targets. Now they are mips32r2/mips64r2 respectively.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@200222 91177308-0d34-0410-b5e6-96231b3b80d8
2014-01-27 13:59:04 +00:00
Amara Emerson fecf5dcc4e [AArch64] Add -mgeneral_regs_only option.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@199904 91177308-0d34-0410-b5e6-96231b3b80d8
2014-01-23 15:48:30 +00:00
Tim Northover efa0a98d0d MachO embedded: default to soft float without issuing warning
This is a simpler rule, broadly in line with previous Darwin (which chose
between "soft" and "softfp") but probably safer. In practice the only real
reason for "softfp" is ABI compatibility, not usually an issue on limited chips
like these, so anyone who wanted hard-float should already be saying so.

That's my story and I'm sticking to it.

rdar://problem/15887493

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@199896 91177308-0d34-0410-b5e6-96231b3b80d8
2014-01-23 15:00:01 +00:00
Alexey Bataev 5da286428f Improve x86 android support, add x86_64 android target
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@199875 91177308-0d34-0410-b5e6-96231b3b80d8
2014-01-23 09:08:32 +00:00
David Blaikie 63f99c4317 Driver: Suppression support for -Wa,--compress-debug-sections
(to go with existing suppression of -Wa,-compress-debug-sections)

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@199822 91177308-0d34-0410-b5e6-96231b3b80d8
2014-01-22 19:22:21 +00:00
Fariborz Jahanian 015f92d365 ObjectiveC driver. reinstate -fno-objc-legacy-dispatch behavior
when the deployment target is 10.5. // rdar://15852259


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@199682 91177308-0d34-0410-b5e6-96231b3b80d8
2014-01-20 19:32:33 +00:00
David Blaikie 3bd957c7bd Driver support for -fdebug-types-sections
Using backend-option like a few other debug codegen flags. I believe
Eric Christopher's working at porting those over to something nicer
such as an API level CodeGenOptions or the like, so this can be
improved along with that work.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@199535 91177308-0d34-0410-b5e6-96231b3b80d8
2014-01-18 02:02:06 +00:00
Joerg Sonnenberger c511df6336 Use switch statements in preparation for adding more architectures.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@199529 91177308-0d34-0410-b5e6-96231b3b80d8
2014-01-18 00:50:49 +00:00
David Blaikie 64037a9c6b Driver: Stub -Wa,-compress-debug-sections support for integrated-as with a suppressable warning
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@199454 91177308-0d34-0410-b5e6-96231b3b80d8
2014-01-17 03:17:40 +00:00
Tim Northover 6bd37ee37a MachO: use *-*-*-macho for MachO embedded targets.
Previously we had bodged together some hacks mapping MachO embedded
targets (i.e. mainly ARM v6M and v7M) to the "*-*-darwin-eabi" triple.
This is incorrect in both details (they don't run Darwin and they're
not EABI in any real sense).

This commit appropriates the existing "MachO" environment for the
purpose instead.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@199367 91177308-0d34-0410-b5e6-96231b3b80d8
2014-01-16 08:48:16 +00:00
Bob Wilson f8c5e995cf Remove support for armv7f slice. <rdar://problem/12478440>
This was never used for anything so we should just get rid of it.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@199336 91177308-0d34-0410-b5e6-96231b3b80d8
2014-01-15 21:43:40 +00:00
Hans Wennborg 11b1b8ab36 Remove the -cxx-abi command-line flag.
This makes the C++ ABI depend entirely on the target: MS ABI for -win32 triples,
Itanium otherwise. It's no longer possible to do weird combinations.

To be able to run a test with a specific ABI without constraining it to a
specific triple, new substitutions are added to lit: %itanium_abi_triple and
%ms_abi_triple can be used to get the current target triple adjusted to the
desired ABI. For example, if the test suite is running with the i686-pc-win32
target, %itanium_abi_triple will expand to i686-pc-mingw32.

Differential Revision: http://llvm-reviews.chandlerc.com/D2545

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@199250 91177308-0d34-0410-b5e6-96231b3b80d8
2014-01-14 19:35:09 +00:00
Bob Wilson dc25150d90 Remove a temporary workaround that is no longer relevant.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@199176 91177308-0d34-0410-b5e6-96231b3b80d8
2014-01-14 01:56:31 +00:00
Hans Wennborg b44435d22f clang-cl: Ignore /fallback when not actually compiling (PR18456)
For example, don't fall back in /P (preprocess) mode.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@199153 91177308-0d34-0410-b5e6-96231b3b80d8
2014-01-13 22:24:42 +00:00
Jakob Stoklund Olesen 23039ad811 MIPS and SPARC assemblers both take the -KPIC flag.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@199034 91177308-0d34-0410-b5e6-96231b3b80d8
2014-01-12 04:53:36 +00:00
Jakob Stoklund Olesen b5ba2e8d1a Select the UltraSPARC instruction set when invoking the assembler.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@199012 91177308-0d34-0410-b5e6-96231b3b80d8
2014-01-11 18:25:01 +00:00
Jakob Stoklund Olesen 609e20d0de Use the right dynamic linker for SPARC Linux executables.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@198923 91177308-0d34-0410-b5e6-96231b3b80d8
2014-01-10 08:18:34 +00:00
Jakob Stoklund Olesen fa6b968902 Give the linker the right ELF type for SPARC targets.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@198912 91177308-0d34-0410-b5e6-96231b3b80d8
2014-01-10 03:51:33 +00:00