Commit Graph

2601 Commits

Author SHA1 Message Date
Hans Wennborg 26a4430ee5 clang-cl: /fallback only applies to C or C++ files
We would previously hit an assert if using /fallback with an .ll file.

llvm-svn: 207234
2014-04-25 16:44:17 +00:00
Hans Wennborg bbb5f07626 clang-cl: pass -debug flag to the linker when compiling with debug info
llvm-svn: 207233
2014-04-25 16:24:19 +00:00
Rafael Espindola f828526268 Revert "Reland r206934 with a hopefully fixed test"
This reverts commit r207155.
The test was still failing.

llvm-svn: 207225
2014-04-25 13:29:03 +00:00
Reid Kleckner 02fefcfc3b Reland r206934 with a hopefully fixed test
llvm-svn: 207155
2014-04-24 23:06:17 +00:00
Logan Chien 6a00cc8306 Add aarch64-linux-android triple for Android.
llvm-svn: 206979
2014-04-23 13:36:23 +00:00
Rafael Espindola e3e047e768 This reverts commit r206934 and r206935.
The original messages were:
  "Driver: Honor %INCLUDE% when built with MinGW"
  "Add missing test triples"

The test was still failing on OS X.

llvm-svn: 206973
2014-04-23 12:38:13 +00:00
Reid Kleckner 9aff2ca27c Driver: Honor %INCLUDE% when built with MinGW
Users are expected to pass system includes through the INCLUDE
environment variable on Windows.  There's no reason to change behavior
based on the toolchain used to build Clang.

I didn't change the registry searching code because I'm not sure it
builds with mingw and I'm not set up to test it.

llvm-svn: 206934
2014-04-23 00:15:12 +00:00
Reid Kleckner 77b45ba301 Driver: Avoid a duplicate path separator and clean up code
llvm-svn: 206933
2014-04-23 00:15:01 +00:00
Justin Bogner f893a6551b Driver: Skip the -fmodules-cache-path argument in driver crash diags
The modules cache path shouldn't be included in crash reports, as it's
a system (or run) specific directory.

llvm-svn: 206922
2014-04-22 21:30:17 +00:00
James Molloy 2b24fc41fc [ARM64] Plumb in big-endian - add arm64_be to the many switches where it was missing.
llvm-svn: 206462
2014-04-17 12:51:23 +00:00
James Molloy 9b1586b6cc [ARM64] Default to the 'generic' CPU, unless -arch is present for backwards compatibility.
llvm-svn: 206461
2014-04-17 12:51:17 +00:00
Joerg Sonnenberger 8280abe47f Handle -m32 for NetBSD/sparc64 correctly. Extend test case to also check
ARM, MIPS and i386 ABIs.

llvm-svn: 206416
2014-04-16 20:44:17 +00:00
Diego Novillo 829b170048 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

llvm-svn: 206401
2014-04-16 16:54:24 +00:00
James Molloy afc352ce64 [ARM64] Plumb in the -mfpu= flag.
llvm-svn: 206395
2014-04-16 15:33:56 +00:00
Quentin Colombet d9f262098f [Driver][ARM64] Make sure the default CPU is passed to the assembler.
<rdar://problem/16573920>

llvm-svn: 206227
2014-04-15 00:27:35 +00:00
Daniel Jasper 962b38e4f3 Add -fmodules-strict-decluse to check that all headers are in modules
Review: http://reviews.llvm.org/D3335
llvm-svn: 206027
2014-04-11 11:47:45 +00:00
Christian Pirker ba289f0c64 ARM: Add command line option to select big or little endian
llvm-svn: 205967
2014-04-10 13:59:32 +00:00
Christian Pirker 02c2e25d74 AArch64: Add command line option to select big or little endian
llvm-svn: 205966
2014-04-10 13:55:51 +00:00
Reid Kleckner 2a24e3ad86 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.

llvm-svn: 205924
2014-04-09 20:07:39 +00:00
David Majnemer 6c684a727a Fix a typo introduced in r205716
llvm-svn: 205717
2014-04-07 16:19:27 +00:00
David Majnemer dc7a47ce2c clang-cl: make /Gw map to -fdata-sections
Note that /Gy no longer implies -fdata-sections.

llvm-svn: 205716
2014-04-07 16:14:38 +00:00
Saleem Abdulrasool f4c9e49f94 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.

llvm-svn: 205650
2014-04-04 20:31:19 +00:00
Logan Chien 749763eaf7 Code cleanup (re-indent)
llvm-svn: 205536
2014-04-03 13:12:44 +00:00
Alexey Samsonov bdfa6c2517 Add support for dynamic ASan runtime (on Linux) to Clang driver.
Based on http://llvm-reviews.chandlerc.com/D3043 by Yuri Gribov!

llvm-svn: 205310
2014-04-01 13:31:10 +00:00
David Blaikie 24bbfed221 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.

llvm-svn: 205265
2014-03-31 23:29:38 +00:00
Tim Northover a2ee433c8d 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.

llvm-svn: 205100
2014-03-29 15:09:45 +00:00
Tim Northover 336f189b61 Driver: implement addClangWarningOptions
This function allows certain platforms to enable or disable diagnostics
by default.

llvm-svn: 205095
2014-03-29 13:16:12 +00:00
Hans Wennborg 9d9ce7a5af Simplify clang-cl's target triple setting
llvm-svn: 205051
2014-03-28 20:49:28 +00:00
Duncan P. N. Exon Smith d971cd1b18 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>

llvm-svn: 205023
2014-03-28 17:53:22 +00:00
Duncan P. N. Exon Smith 2d8f93e869 Revert "Link in profile library on Linux using --whole-archive"
This reverts commit r205012.

llvm-svn: 205022
2014-03-28 17:53:17 +00:00
Alexey Samsonov 4a37d60aca Link in profile library on Linux using --whole-archive
llvm-svn: 205012
2014-03-28 15:39:08 +00:00
Christian Pirker f01cd6f57b Add ARM big endian Target (armeb, thumbeb)
Reviewed at http://llvm-reviews.chandlerc.com/D3096

llvm-svn: 205008
2014-03-28 14:40:46 +00:00
Hans Wennborg 73609a0fb3 clang-cl wants MSVC-style win32
This should fix the clang-cl tests after the Windows target triple
canonicalization (r204978)

llvm-svn: 204985
2014-03-28 01:19:04 +00:00
Saleem Abdulrasool 377066a5f5 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.

llvm-svn: 204978
2014-03-27 22:50:18 +00:00
David Blaikie 7e2fd943ae Support for -Wa,-compress-debug-sections.
Also, while I'm here, support -nocompress-debug-sections too.

llvm-svn: 204959
2014-03-27 20:47:30 +00:00
Duncan P. N. Exon Smith a19ffae1b0 InstrProf: Pull in runtime on non-Darwin
r204379 changed the way the profile runtime gets pulled in, but missed
updating non-Darwin targets.

llvm-svn: 204939
2014-03-27 16:20:02 +00:00
David Blaikie f596145ac5 Use an option alias to implement -gmlt
Review feedback from Reid Kleckner on r203603.

llvm-svn: 204755
2014-03-25 20:42:27 +00:00
Benjamin Kramer ab88f62614 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

llvm-svn: 204742
2014-03-25 18:02:07 +00:00
Hans Wennborg d8d49ba20e clang-cl: make /Gy imply -fdata-sections in addition to -ffunction-sections
llvm-svn: 204736
2014-03-25 17:50:25 +00:00
Hans Wennborg 5149a3b837 clang-cl: Forward /Gy or /Gy- when falling back to cl.exe
llvm-svn: 204723
2014-03-25 14:48:54 +00:00
Will Schmidt c1fc190913 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.

llvm-svn: 204626
2014-03-24 17:10:37 +00:00
Alexey Samsonov e1237993c7 Kill deprecated -fbounds-checking flag
llvm-svn: 204436
2014-03-21 07:15:47 +00:00
Duncan P. N. Exon Smith a7807637bf PGO: Change runtime prefix from pgo to profile
These functions are in the profile runtime.  PGO comes later.

Unfortunately, there's only room for 16 characters in a Darwin section,
so use __llvm_prf_ instead of __llvm_profile_ for section names.

<rdar://problem/15943240>

llvm-svn: 204390
2014-03-20 20:00:41 +00:00
Duncan P. N. Exon Smith 5188e91cd4 PGO: Remove explicit static initialization
Remove the remaining explicit static initialization from translation
units, at least on Darwin.  Instead, create a use of __llvm_pgo_runtime,
which will pull in required code from compiler-rt.

After this commit (and its pair in compiler-rt), a user can define their
own __llvm_pgo_runtime to satisfy this undefined symbol and call the
functions in compiler-rt directly.

<rdar://problem/15943240>

llvm-svn: 204379
2014-03-20 19:23:46 +00:00
Duncan P. N. Exon Smith 3095e4d3bf Coding style fixup; no functionality change
llvm-svn: 204371
2014-03-20 18:40:53 +00:00
Evgeniy Stepanov 2bfcaabdec [msan] -fsanitize-memory-track-origins=[level] flag and docs.
This change turns -fsanitize-memory-track-origins into
-fsanitize-memory-track-origins=[level] flag (keeping the old one for
compatibility). Possible levels are 0 (off), 1 (default) and 2 (incredibly
detailed). See docs (part of this patch) for more info.

llvm-svn: 204346
2014-03-20 14:58:36 +00:00
Alexey Samsonov cb3f812b6b 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.

llvm-svn: 204330
2014-03-20 10:48:29 +00:00
Viktor Kutuzov aa5b5f7b0d Add support for sanitizers arguments on FreeBSD
llvm-svn: 204129
2014-03-18 09:36:50 +00:00
Christian Pirker a74c7914ad AArch64_be specific clang target settings
llvm-svn: 203918
2014-03-14 12:15:45 +00:00
Craig Topper f85c6ce867 De-virtualize a method that doesn't override anything and has no overrides itself.
llvm-svn: 203895
2014-03-14 06:06:19 +00:00
Craig Topper 21beb40da5 Remove seemingly dead method. It was marked virtual but doesn't override anything and there don't seem to be any in tree callers.
llvm-svn: 203894
2014-03-14 06:04:02 +00:00
Craig Topper b45acb8a16 [C++11] Add 'override' keyword to virtual methods that override their base class.
llvm-svn: 203893
2014-03-14 06:02:07 +00:00
Argyrios Kyrtzidis 6d0753d42a [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

llvm-svn: 203885
2014-03-14 03:07:38 +00:00
Joerg Sonnenberger 52be0b4cf4 Always use --eh-frame-hdr on NetBSD, even for -static.
llvm-svn: 203742
2014-03-13 00:42:01 +00:00
Richard Smith 5b5d21ea1a Only allow streaming exactly type 'bool' to a DiagnosticBuilder, not anything
that implicitly converts to 'bool' (such as pointers, and the first operand of
?:). Clean up issues found by this. Patch by Stephan Tolksdorf!

llvm-svn: 203735
2014-03-12 23:36:42 +00:00
Ben Langmuir dcf73861a5 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.

llvm-svn: 203630
2014-03-12 00:06:17 +00:00
David Blaikie 29559b1efa Driver: Support -gmlt as an alias for -gline-tables-only
llvm-svn: 203603
2014-03-11 21:05:26 +00:00
Ahmed Charles dfca6f97bc [C++11] Replace OwningPtr include with <memory>.
llvm-svn: 203389
2014-03-09 11:36:40 +00:00
Ahmed Charles b89843299a Replace OwningPtr with std::unique_ptr.
This compiles cleanly with lldb/lld/clang-tools-extra/llvm.

llvm-svn: 203279
2014-03-07 20:03:18 +00:00
Ahmed Charles 9a16beb8bc Change OwningPtr::take() to OwningPtr::release().
This is a precursor to moving to std::unique_ptr.

llvm-svn: 203275
2014-03-07 19:33:25 +00:00
Alexey Bataev 648250a2e5 [OPENMP] Fixed linked libraries for libiomp5 on Linux
llvm-svn: 203212
2014-03-07 07:43:52 +00:00
Saleem Abdulrasool 29b82b631d Update for LLVM API change
Use the new getObjectFormat/setObjectFormat instead of Environment now that the
file format is a separate field.

llvm-svn: 203161
2014-03-06 20:47:19 +00:00
Alexey Bataev 186b28a8cf [OPENMP] Added option -fopenmp=libiomp5|libgomp
llvm-svn: 203081
2014-03-06 05:43:53 +00:00
Benjamin Kramer 65f0a4a1af Revert "[C++11] Replace trivial lambda with std::cref."
MSVC2013's standard library is too broken to understand this pattern.

llvm-svn: 202971
2014-03-05 13:25:00 +00:00
Benjamin Kramer fcef811822 [C++11] Replace trivial lambda with std::cref.
llvm-svn: 202968
2014-03-05 11:38:18 +00:00
Benjamin Kramer 9299637dc0 Pass llvm::Triple objects by const reference.
Copying isn't cheap as it contains a std::string.

llvm-svn: 202880
2014-03-04 19:31:42 +00:00
Simon Atanasyan 738f85a20e [Mips] Check all MIPS toolchains to find the one that best meets command
line arguments and directories tree. The old toolchain selection heuristics
worked incorrectly when user has a reduced MIPS toolchain supports
the O32 ABI only.

Patch reviewed by Jonathan Roelofs, David Majnemer.

llvm-svn: 202873
2014-03-04 18:37:28 +00:00
Chandler Carruth 757fcd6d1f [cleanup] Re-sort includes with llvm/utils/sort_includes.py and fix
a missing include from CLog.h.

CLog.h referenced most of the core libclang types but never directly
included Index.h that provides them. Previously it got lucky and other
headers were always included first but with the sorting it ended up
first in one case and stopped compiling. Adding the Index.h include
fixes it right up.

llvm-svn: 202810
2014-03-04 10:05:20 +00:00
Argyrios Kyrtzidis 1594c15500 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

llvm-svn: 202683
2014-03-03 08:12:05 +00:00
Benjamin Kramer 867ea1d426 [C++11] Replace llvm::tie with std::tie.
llvm-svn: 202639
2014-03-02 13:01:17 +00:00
Craig Topper a798a9db93 Switch all uses of LLVM_OVERRIDE to just use 'override' directly.
llvm-svn: 202625
2014-03-02 09:32:10 +00:00
Benjamin Kramer bbdd7640e8 [C++11] Replace verbose functors with succinct lambdas
No functionality change.

llvm-svn: 202590
2014-03-01 14:48:57 +00:00
Rafael Espindola cc126271f8 Add support for OpenBSD SPARC assembler.
Patch by Brad Smith.

llvm-svn: 202462
2014-02-28 01:55:21 +00:00
NAKAMURA Takumi 9698686505 [CMake] Use LINK_LIBS instead of target_link_libraries().
llvm-svn: 202238
2014-02-26 06:41:29 +00:00
Roman Divacky 9f77940fdc Pass the sparc architecture variant to the assembler.
llvm-svn: 202179
2014-02-25 18:45:49 +00:00
Hans Wennborg 7b0dcef072 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.

llvm-svn: 202178
2014-02-25 18:36:22 +00:00
Roman Divacky b1ae3d4937 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.

llvm-svn: 202177
2014-02-25 18:35:30 +00:00
Christian Pirker 9b019ae899 Add AArch64 big endian Target (aarch64_be)
llvm-svn: 202151
2014-02-25 13:51:00 +00:00
Alexey Samsonov e65ceb9f16 Respect ToolChain::isPIEDefault() in constructing link job on Linux and FreeBSD.
Partially based on http://llvm-reviews.chandlerc.com/D2644 by Viktor Kutuzov.

llvm-svn: 202150
2014-02-25 13:26:03 +00:00
Alexey Samsonov ce8ab107ac Factor adding sanitizer linker flags into a separate function and make it less OS-specific
llvm-svn: 202148
2014-02-25 12:43:43 +00:00
Alp Toker f45fa3dca5 Fix typos
llvm-svn: 202108
2014-02-25 04:21:44 +00:00
Richard Barton c9b5f35ec1 Implement -fno-short-wchar
llvm-svn: 202058
2014-02-24 18:43:28 +00:00
Rafael Espindola 4fbd373815 Update for llvm api change.
llvm-svn: 202053
2014-02-24 18:20:21 +00:00
Saleem Abdulrasool cfeb90d7a8 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.

llvm-svn: 201963
2014-02-23 00:40:30 +00:00
Saleem Abdulrasool 42e4b5997a 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.

llvm-svn: 201960
2014-02-22 23:37:58 +00:00
Saleem Abdulrasool 59106827c4 Revert "clang: forward -no-integrated-as from the driver"
This seems to break a MIPS test.  Revert until I figure out the root cause.

llvm-svn: 201954
2014-02-22 22:24:00 +00:00
Saleem Abdulrasool 87a7fda237 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.

llvm-svn: 201952
2014-02-22 21:50:09 +00:00
Joerg Sonnenberger 695fdb3bc2 Default to ARMv5e for NetBSD/EABI, ARMv4 for APCS.
llvm-svn: 201894
2014-02-21 21:53:33 +00:00
Oliver Stannard 96601cad2f 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.

llvm-svn: 201846
2014-02-21 10:39:15 +00:00
NAKAMURA Takumi 7da9487dd4 [CMake] Get rid of explicit dependencies to include/clang/*.inc and introduce CLANG_TABLEGEN_TARGETS.
This does;
  - clang_tablegen() adds each tblgen'd target to global property CLANG_TABLEGEN_TARGETS as list.
  - List of targets is added to LLVM_COMMON_DEPENDS.
  - all clang libraries and targets depend on generated headers.

You might wonder this would be regression, but in fact, this is little loss.
  - Almost all of clang libraries depend on tblgen'd files and clang-tblgen.
  - clang-tblgen may cause short stall-out but doesn't cause unconditional rebuild.
  - Each library's dependencies to tblgen'd files might vary along headers' structure.
    It made hard to track and update *really optimal* dependencies.

Each dependency to intrinsics_gen and ClangSACheckers is left as DEPENDS.

llvm-svn: 201842
2014-02-21 07:59:59 +00:00
Bob Wilson f8cf1611e3 Fix an assertion failure when invoking dsymutil.
There is no bound architecture for the dsymutil action in the driver. Trying
to check various properties of the target will cause an assertion failure
because the target doesn't get initialized without a bound architecture.
<rdar://problem/16111555>

llvm-svn: 201830
2014-02-21 00:20:07 +00:00
Rafael Espindola 2f53468870 Fix typo.
Patch by Stephan Falke.

llvm-svn: 201794
2014-02-20 16:44:12 +00:00
Alexey Samsonov 7811d19515 Get rid of obsolete addProfileRT(), generalize the relevant addProfileRTLinux() to all OS
llvm-svn: 201789
2014-02-20 13:57:37 +00:00
Reid Kleckner 588c937228 Use llvm::DeleteContainerSeconds when possible
llvm-svn: 201739
2014-02-19 23:44:52 +00:00
Joerg Sonnenberger ed3f0693cb Hook up NetBSD/sparc and NetBSD/sparc64 as and ld invocations.
llvm-svn: 201730
2014-02-19 22:40:18 +00:00
Joerg Sonnenberger bcee91805e GC now unused variable.
llvm-svn: 201728
2014-02-19 22:17:01 +00:00
Joerg Sonnenberger 25e1817787 Use a switch for the architecture specific logic in
netbsd::Assemble::ConstructJob.

llvm-svn: 201725
2014-02-19 22:16:19 +00:00
Reid Kleckner c688dafe31 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.

llvm-svn: 201721
2014-02-19 22:05:59 +00:00
Joerg Sonnenberger c151b024dc Refactor -KPIC handling for as invocation.
llvm-svn: 201719
2014-02-19 21:58:52 +00:00
Yunzhong Gao e3f902c32a Only print the selected multilib when something is actually found on the host.
llvm-svn: 201709
2014-02-19 19:06:58 +00:00
Renato Golin f4421f7e28 Add FreeBSD ARM EABI hard-float support
Patch by Andrew Turner.

llvm-svn: 201662
2014-02-19 10:44:07 +00:00
Hans Wennborg 897a69b33e clang-cl /fallback: turn the note into a warning
llvm-svn: 201626
2014-02-19 02:10:19 +00:00
Hans Wennborg c5afd06a0d clang-cl /fallback: emit a note when falling back
This makes it a lot easier to see what's going on from the output.

llvm-svn: 201604
2014-02-18 21:42:51 +00:00
Adrian Prantl 549c514799 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.

llvm-svn: 201520
2014-02-17 17:40:52 +00:00
Tim Northover da98bb634e Darwin: remove buggy assertion
We later emit a proper error in the situations where this would trigger, so
there's no need to check.

rdar://problem/16040604

llvm-svn: 201508
2014-02-17 11:12:04 +00:00
Evgeniy Stepanov 7429c5941b Enable generation of unwind tables when building with sanitizers.
llvm-svn: 201391
2014-02-14 08:56:25 +00:00
Jiangning Liu b19c5b652e Enable AArch64 NEON by default.
llvm-svn: 201384
2014-02-14 04:37:46 +00:00
Eric Christopher 0d403d22b0 Add a command line option -gdwarf-aranges that will turn on emitting
the dwarf .debug_aranges section.

llvm-svn: 201379
2014-02-14 01:27:03 +00:00
Adrian Prantl 27edf47bc0 Debug info: Make DWARF4 the default for Darwin, too.
llvm-svn: 201375
2014-02-14 00:29:33 +00:00
Robert Lytton 9e8c1a4b57 XCore target pass -v flag to assembler & linker
llvm-svn: 201312
2014-02-13 10:40:12 +00:00
Robert Lytton 694f884f35 add comment explaining previous commit
see 'XCore target -fexceptions flag handling'

llvm-svn: 201311
2014-02-13 10:38:56 +00:00
Robert Lytton f7e03c1cff XCore target -fexceptions flag handling
XCore target has -fno-exception as the default option
Pass on "-fexceptions" flag to xcc (linker)

llvm-svn: 201310
2014-02-13 10:34:44 +00:00
Renato Golin 03d671c733 Remove spurious default case to silent sanitizer
llvm-svn: 201309
2014-02-13 10:26:33 +00:00
Renato Golin c4b4924a13 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).

llvm-svn: 201307
2014-02-13 10:01:16 +00:00
Reid Kleckner c0dca6ded7 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

llvm-svn: 201274
2014-02-12 23:50:26 +00:00
NAKAMURA Takumi 691e6ef461 clang/lib/Driver/Multilib.cpp: Rewrite normalizePathSegment() to be tolerant dosish pathsep.
FIXME: It could be more simple...
llvm-svn: 201227
2014-02-12 11:42:02 +00:00
Dmitri Gribenko f430da4de6 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.

llvm-svn: 201224
2014-02-12 10:33:14 +00:00
Amara Emerson ecbe18e01d [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.

llvm-svn: 201223
2014-02-12 10:22:35 +00:00
Jonathan Roelofs 4c991ef3ef Fix r201205's use-after-free bug caught by sanitizer bot
llvm-svn: 201209
2014-02-12 06:37:27 +00:00
Jonathan Roelofs 2cea1bea87 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
llvm-svn: 201205
2014-02-12 03:21:20 +00:00
Jonathan Roelofs 3fa96d8378 Revert 201202
Breaks cmake configure of new unit tests directory

llvm-svn: 201203
2014-02-12 01:36:51 +00:00
Jonathan Roelofs 0e7ec60b74 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
llvm-svn: 201202
2014-02-12 01:29:25 +00:00
David Majnemer 86c318f496 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

llvm-svn: 201175
2014-02-11 21:05:00 +00:00
Jonathan Roelofs 41f4345df0 Test commit -- Remove an extra newline from Toolchains.cpp
llvm-svn: 201172
2014-02-11 20:02:34 +00:00
Robert Lytton 8e95d4e075 XCore target: Pass through "-fverbose-asm" flag to xcc assembler.
llvm-svn: 201141
2014-02-11 10:34:45 +00:00
Josh Magee e0fc1a80cb [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

llvm-svn: 201120
2014-02-11 01:35:14 +00:00
Argyrios Kyrtzidis 25f2afdee0 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.

llvm-svn: 200964
2014-02-07 08:33:28 +00:00
Joerg Sonnenberger 83a33c0cd7 Use correct ld emulation for EABI hardware float triple on NetBSD.
llvm-svn: 200946
2014-02-06 21:04:32 +00:00
Ben Langmuir 9b9a8d330c 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.

llvm-svn: 200938
2014-02-06 18:53:25 +00:00
Ben Langmuir 2cb4a78f93 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

llvm-svn: 200884
2014-02-05 22:21:15 +00:00
Evgeniy Stepanov 9e7cb33b17 Fix handling of -fno-function-sections, -fno-data-sections in clang driver.
llvm-svn: 200685
2014-02-03 11:11:37 +00:00
Joerg Sonnenberger e7f9759fd9 Handle O32/N64 ABIs for NetBSD/MIPS64. From Matt Thomas.
llvm-svn: 200668
2014-02-02 22:59:16 +00:00
Joerg Sonnenberger d68c650489 Replace hasMipsN32ABIArg with hasMipsABIArg in preparation of o32/n64
support.

llvm-svn: 200667
2014-02-02 22:54:18 +00:00
Joerg Sonnenberger 6cd7deb9fe Use a switch for the emulation handling.
llvm-svn: 200666
2014-02-02 22:50:34 +00:00
Joerg Sonnenberger 25de31d472 Handle compat support for EABI/old APCS compatibility on NetBSD/ARM.
llvm-svn: 200665
2014-02-02 22:47:37 +00:00
Joerg Sonnenberger d11c478ac3 Replace hasMipsN32ABIArg by hasMipsABIArg to make it easier to add
support for o32 and n64.

llvm-svn: 200662
2014-02-02 22:40:33 +00:00
Joerg Sonnenberger dc7a23c660 Pass down -mcpu for external assembler in thumb mode, too. From Matt Thomas.
llvm-svn: 200661
2014-02-02 22:37:14 +00:00
Joerg Sonnenberger 1e205ef7cf Minor formatting improvement.
llvm-svn: 200659
2014-02-02 22:36:13 +00:00
Evgeniy Stepanov 78901bd09e Revert r200555, r200545.
These changes make it impossible to use ARM EHABI for stack unwinding without
enabling exceptions and break AddressSanitizer on ARM.

llvm-svn: 200627
2014-02-02 10:39:45 +00:00
Bob Wilson 5cfc55e49f Fix an assertion failure when building for the iOS simulator. rdar://15959009
When building for i386 or x86_64 with IPHONEOS_DEPLOYMENT_TARGET set in the
environment, the toolchain correctly recognizes that the target platform is
the iOS simulator. The code in Darwin::addMinVersionArgs was not updated for
svn 197148, where isTargetIPhoneOS() was widely replaced by isTargetIOSBased().
This is kind of a strange case, though, because we probably ought to be
passing -ios_simulator_version_min to the linker, but according to the FIXME
in the code, we intentionally avoid that unless the -mios-simulator-version-min
option was used. I don't know whether it is safe to change that yet, so
for now, I am just fixing the assertion failure.

llvm-svn: 200618
2014-02-01 21:06:21 +00:00
Renato Golin 779f3ba2b3 Last option on -fexception for arm-disable-ehabi
Previous commit would have a following flag overriding the behaviour
and not taken care of.

llvm-svn: 200555
2014-01-31 16:19:26 +00:00
Renato Golin e7a971b7fa Connect -fno-exceptions to -arm-disable-ehabi
llvm-svn: 200545
2014-01-31 14:13:20 +00:00
Renato Golin e807c12c7a ARM RT libs with generic name
llvm-svn: 200538
2014-01-31 11:47:28 +00:00
Alexey Bataev 286d1b929d Make x86 Android default target CPUs compatible with GCC (http://llvm-reviews.chandlerc.com/D2655)
llvm-svn: 200510
2014-01-31 04:07:13 +00:00
David Majnemer 04a835798a Driver: Don't use DOS style paths on UNIX
We'd add, as a fallback, DOS style paths when using the driver using a
win32 triple.  On a UNIX-like platform, this isn't particularly helpful.

llvm-svn: 200507
2014-01-31 01:35:55 +00:00
Hans Wennborg cfdd8b54cf clang-cl: Better error message when trying to compile stdin (PR18640)
We should suggest using /Tc or /Tp to set the input type, instead of
erroneously suggesting -x, which isn't a clang-cl flag.

llvm-svn: 200362
2014-01-29 01:04:40 +00:00
Alexey Bataev 40e7522ebd Turn on PIC by default on Android (http://llvm-reviews.chandlerc.com/D2603)
llvm-svn: 200290
2014-01-28 06:30:35 +00:00
David Blaikie f36d9bac47 Driver: support -fno-debug-types-section to override -fdebug-types-section
llvm-svn: 200236
2014-01-27 18:52:43 +00:00
Simon Atanasyan 1a3665b676 [Mips] Change default CPU for MIPS 32/64 targets. Now they are mips32r2/mips64r2 respectively.
llvm-svn: 200222
2014-01-27 13:59:04 +00:00
Simon Atanasyan 68855fe3c9 [Mips] Add support for mips64el-linux-android triple.
llvm-svn: 200081
2014-01-25 16:04:08 +00:00