| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
| |
llvm-svn: 181683
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch then adds all the usual platform-specific pieces for SystemZ:
driver support, basic target info, register names and constraints,
ABI info and vararg support. It also adds new tests to verify pre-defined
macros and inline asm, and updates a test for the minimum alignment change.
This version of the patch incorporates feedback from reviews by
Eric Christopher and John McCall. Thanks to all reviewers!
Patch by Richard Sandiford.
llvm-svn: 181211
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch adds a new common code feature that allows platform code to
request minimum alignment of global symbols. The background for this is
that on SystemZ, the most efficient way to load addresses of global symbol
is the LOAD ADDRESS RELATIVE LONG (LARL) instruction. This instruction
provides PC-relative addressing, but only to *even* addresses. For this
reason, existing compilers will guarantee that global symbols are always
aligned to at least 2. [ Since symbols would otherwise already use a
default alignment based on their type, this will usually only affect global
objects of character type or character arrays. ] GCC also allows creating
symbols without that extra alignment by using explicit "aligned" attributes
(which then need to be used on both definition and each use of the symbol).
To enable support for this with Clang, this patch adds a
TargetInfo::MinGlobalAlign variable that provides a global minimum for the
alignment of every global object (unless overridden via explicit alignment
attribute), and adds code to respect this setting. Within this patch, no
platform actually sets the value to anything but the default 1, resulting
in no change in behaviour on any existing target.
This version of the patch incorporates feedback from reviews by
Eric Christopher and John McCall. Thanks to all reviewers!
Patch by Richard Sandiford.
llvm-svn: 181210
|
|
|
|
|
|
|
| |
libgcc provides a __clear_cache intrinsic on AArch64, much like it
does on 32-bit ARM.
llvm-svn: 181111
|
|
|
|
|
|
| |
Per discussion in cfe-commits, asserting may be a better way than introducing a special test flag.
llvm-svn: 181073
|
|
|
|
| |
llvm-svn: 181070
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Previously, we would clone the current diagnostic consumer to produce
a new diagnostic consumer to use when building a module. The problem
here is that we end up losing diagnostics for important diagnostic
consumers, such as serialized diagnostics (where we'd end up with two
diagnostic consumers writing the same output file). With forwarding,
the diagnostics from all of the different modules being built get
forwarded to the one serialized-diagnostic consumer and are emitted in
a sane way.
Fixes <rdar://problem/13663996>.
llvm-svn: 181067
|
|
|
|
|
|
|
|
|
| |
Clang always calls setWarnOnSpellCheck, but we shouldn't require every client to
do so.
Issue noticed by Enea Zaffanella.
llvm-svn: 181021
|
|
|
|
| |
llvm-svn: 181006
|
|
|
|
|
|
| |
Solaris/AuroraUX only need __arch64__, the BSDs need the other variants.
llvm-svn: 180172
|
|
|
|
| |
llvm-svn: 179806
|
|
|
|
|
|
| |
Fixes PR15759.
llvm-svn: 179756
|
|
|
|
|
|
|
|
|
| |
Typo correction for an unqualified name needs to walk through all of the identifier tables of all modules.
When we have a global index, just walk its identifier table only.
rdar://13425732
llvm-svn: 179730
|
|
|
|
|
|
|
|
|
|
|
|
| |
The SPARC v8 and SPARC v8 architectures are very similar, so use a base
class to share most information between them.
Include operating systems with known SPARC v9 ports.
Also fix two issues with the SPARC v8 data layout string: SPARC v8 is a
big endian target with a 64-bit aligned stack.
llvm-svn: 179596
|
|
|
|
| |
llvm-svn: 179489
|
|
|
|
|
|
| |
independent of float ABI feature in the MipsTargetInfoBase class.
llvm-svn: 179486
|
|
|
|
|
|
|
|
|
| |
"included/expanded in" decomposed location of the given FileID.
The main benefit is to speed-up SourceManager::isBeforeInTranslationUnit which is common to query
the included/expanded location of the same FileID multiple times.
llvm-svn: 179435
|
|
|
|
|
|
|
| |
Remove the custom lowering code dealing with it, disallow it in PNaclTargetInfo
and adjust tests accordingly.
llvm-svn: 179059
|
|
|
|
|
|
|
|
|
|
|
| |
The prefixes and names used are now identical to 32-bit ARM, which is also
expected to remain unchanged.
If we made this change after a release, we'd probably have to support both
variants for a while, but I think since AArch64 exists only on trunk now, it's
acceptable to simply swap them now.
llvm-svn: 178870
|
|
|
|
|
|
| |
This fixes std::thread with libstdc++.
llvm-svn: 178816
|
|
|
|
| |
llvm-svn: 178498
|
|
|
|
| |
llvm-svn: 178419
|
|
|
|
|
|
|
| |
gcc provides -mfprnd and -mno-fprnd for controlling the fprnd target
feature; support these options as well.
llvm-svn: 178414
|
|
|
|
| |
llvm-svn: 178331
|
|
|
|
|
|
|
| |
gcc provides -mpopcntd and -mno-popcntd for controlling the popcntd target
feature; support these options as well.
llvm-svn: 178235
|
|
|
|
|
|
|
|
| |
gcc provides -mmfcrf and -mno-mfcrf for controlling what we call
the mfocrf target feature. Also, PPC is now making use of the
static function AddTargetFeature used by the Mips Driver code.
llvm-svn: 178227
|
|
|
|
|
|
|
|
|
| |
- Add head 'prfchwintrin.h' to define '_m_prefetchw' which is mapped to
LLVM/clang prefetch builtin
- Add option '-mprfchw' to enable PRFCHW feature and pre-define '__PRFCHW__'
macro
llvm-svn: 178041
|
|
|
|
|
|
| |
information at build time, not configure time.
llvm-svn: 177939
|
|
|
|
| |
llvm-svn: 177922
|
|
|
|
| |
llvm-svn: 177705
|
|
|
|
|
|
| |
and warn when a newly-imported module conflicts with an already-imported module.
llvm-svn: 177577
|
|
|
|
|
|
|
|
|
| |
deserialized correctly.
This fixes regressions introduced in r177466 that caused several
module tests to fail sporadically.
llvm-svn: 177481
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Configuration macros are macros that are intended to alter how a
module works, such that we need to build different module variants
for different values of these macros. A module can declare its
configuration macros, in which case we will complain if the definition
of a configation macro on the command line (or lack thereof) differs
from the current preprocessor state at the point where the module is
imported. This should eliminate some surprises when enabling modules,
because "#define CONFIG_MACRO ..." followed by "#include
<module/header.h>" would silently ignore the CONFIG_MACRO setting. At
least it will no longer be silent about it.
Configuration macros are eventually intended to help reduce the number
of module variants that need to be built. When the list of
configuration macros for a module is exhaustive, we only need to
consider the settings for those macros when building/finding the
module, which can help isolate modules for various project-specific -D
flags that should never affect how modules are build (but currently do).
llvm-svn: 177466
|
|
|
|
|
|
|
|
|
|
|
| |
This allows resolving top-header filenames of modules to FileEntries when
we need them, not eagerly.
Note that that this breaks ABI for libclang functions
clang_Module_getTopLevelHeader / clang_Module_getNumTopLevelHeaders
but this is fine because they are experimental and not widely used yet.
llvm-svn: 176975
|
|
|
|
|
|
|
|
|
| |
Driver will now error when trying to compile for V2 or V3.
Removal of V2 and V3 support will allow us to simplify the hexagon
back-end.
llvm-svn: 176859
|
|
|
|
|
|
| |
Add 32/64 bit specific target defines for SPIR.
llvm-svn: 176629
|
|
|
|
|
|
|
|
|
|
|
|
| |
'R' An address that can be sued in a non-macro load or store.
Including missing positive test case and fixed typo for r176453.
Thanks to Richard Smith for catching this!
Jack
llvm-svn: 176506
|
|
|
|
|
|
| |
Also fix a missing entry for cortex-r5 in one copy of getLLVMArchSuffixForARM.
llvm-svn: 176457
|
|
|
|
|
|
|
| |
'R' An address that can be sued in a non-macro load or store.
This patch includes a positive test case.
llvm-svn: 176453
|
|
|
|
|
|
|
|
|
| |
v2:
- Add R600_DOUBLE_OPS for RV670
- s/CPU/GPU/
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
llvm-svn: 176440
|
|
|
|
|
|
| |
These all appear in comments or (ironically) diagnostics output.
llvm-svn: 176383
|
|
|
|
| |
llvm-svn: 176333
|
|
|
|
|
|
|
|
| |
don't enter an infinite loop.
rdar://13120919
llvm-svn: 176331
|
|
|
|
|
|
|
| |
(means n64 abi) to improve compatibility with GNU tools.
Patch by Jia Liu <proljc@gmail.com>.
llvm-svn: 176187
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
isBeforeInTranslationUnit() uses a cache to reduce the expensive work
to compute a common ancestor for two FileIDs. This work is very
expensive, so even caching the latest used FileIDs was a big win.
A closer analysis of the cache before, however, shows that the cache
access pattern would oscillate between a working set of FileIDs, and
thus caching more pairs would be profitable.
This patch adds a side table for extending caching. This side table
is bounded in size (experimentally determined in this case from
a simple Objective-C project), and when the table gets too large
we fall back to the single entry caching before as before.
On Sketch (a small example Objective-C project), this optimization
reduces -fsyntax-only time on SKTGraphicView.m by 5%. This is
for a project that is already using PCH.
Fixes <rdar://problem/13299847>
llvm-svn: 176142
|
|
|
|
|
|
| |
capitalization, as suggested by Chandler.
llvm-svn: 176001
|
|
|
|
| |
llvm-svn: 175954
|
|
|
|
| |
llvm-svn: 175936
|
|
|
|
| |
llvm-svn: 175912
|
|
|
|
|
|
|
|
| |
This may seem counter-intuitive but the POD-like optimization helps when the
vectors grow into multimegabyte buffers. SmallVector calls realloc which knows
how to twiddle virtual memory bits and avoids large copies.
llvm-svn: 175906
|