| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
| |
llvm-svn: 198312
|
| |
|
|
|
|
| |
PIC code.
llvm-svn: 198311
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary: Added CommentPragmas option for this.
Reviewers: djasper, klimek
Reviewed By: klimek
CC: cfe-commits, klimek
Differential Revision: http://llvm-reviews.chandlerc.com/D2460
llvm-svn: 198310
|
| |
|
|
|
|
|
| |
The backend string is only verified when available as it's possible to run
clang IRGen for targets that haven't been built or don't exist in LLVM.
llvm-svn: 198309
|
| |
|
|
| |
llvm-svn: 198308
|
| |
|
|
|
|
|
| |
No functionality change, but unblocks asserting that llvm's and clang's
datalayout strings are the same.
llvm-svn: 198306
|
| |
|
|
|
|
|
| |
This patch makes it possible to select the ABI with -mattr. It will be used to
forward clang's -target-abi option to llvm's CodeGen.
llvm-svn: 198304
|
| |
|
|
| |
llvm-svn: 198300
|
| |
|
|
| |
llvm-svn: 198292
|
| |
|
|
| |
llvm-svn: 198291
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When there are cycles in the value graph we have to be careful interpreting
"Value*" identity as "value" equivalence. We interpret the value of a phi node
as the value of its operands.
When we check for value equivalence now we make sure that the "Value*" dominates
all cycles (phis).
%0 = phi [%noaliasval, %addr2]
%l = load %ptr
%addr1 = gep @a, 0, %l
%addr2 = gep @a, 0, (%l + 1)
store %ptr ...
Before this patch we would return NoAlias for (%0, %addr1) which is wrong
because the value of the load is from different iterations of the loop.
Tested on x86_64 -mavx at O3 and O3 -flto with no performance or compile time
regressions.
PR18068
radar://15653794
llvm-svn: 198290
|
| |
|
|
|
|
| |
Suggested by Aaron Ballman.
llvm-svn: 198288
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
During the years there have been some attempts at figuring out how to
align byval arguments. A look at the commit log suggests that they
were
* Use the ABI alignment.
* When that was not sufficient for x86-64, I added the 's' specification to
DataLayout.
* When that was not sufficient Evan added the virtual getByValTypeAlignment.
* When even that was not sufficient, we just got the FE to add the alignment
to the byval.
This patch is just a simple cleanup that removes my first attempt at fixing the
problem. I also added an AArch64 implementation of getByValTypeAlignment to
make sure this patch is a nop. I also left the 's' parsing for backward
compatibility.
I will send a short email to llvmdev about the change for anyone maintaining
an out of tree target.
llvm-svn: 198287
|
| |
|
|
| |
llvm-svn: 198286
|
| |
|
|
|
|
| |
used. Removes ~11.5K from static tables.
llvm-svn: 198284
|
| |
|
|
|
|
| |
__multi3() in correct order.
llvm-svn: 198281
|
| |
|
|
|
|
| |
does not clear top 32 bit, only SRL does.
llvm-svn: 198280
|
| |
|
|
|
|
| |
[-Wdocumentation]
llvm-svn: 198279
|
| |
|
|
|
|
| |
really more like OrRegFrm so we don't need a difference since we can just mask bits.
llvm-svn: 198278
|
| |
|
|
|
|
|
| |
Printing rounding control.
Enncoding for EVEX_RC (rounding control).
llvm-svn: 198277
|
| |
|
|
|
|
| |
instructions. These instructions can be handled by MRMXr instead.
llvm-svn: 198276
|
| |
|
|
| |
llvm-svn: 198275
|
| |
|
|
|
| |
FIXME: Dragonegg may be updated at non-trivial changes.
llvm-svn: 198274
|
| |
|
|
|
|
| |
Stopgap measure until we can just use static_assert().
llvm-svn: 198273
|
| |
|
|
| |
llvm-svn: 198272
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Remove UnaryTypeTraitExpr and switch all remaining type trait related handling
over to TypeTraitExpr.
The UTT/BTT/TT enum prefix and evaluation code is retained pending further
cleanup.
This is part of the ongoing work to unify type traits following the removal of
BinaryTypeTraitExpr in r197273.
llvm-svn: 198271
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
1) Teach ExpectAndConsume() to emit expected and expected-after diagnostics
using the generic diagnostic descriptions added in r197972, eliminating another
set of trivial err_expected_* variations while maintaining existing behaviour.
2) Lift SkipUntil() recovery out of ExpectAndConsume(). The Expect/Consume
family of functions are primitive parser operations that now have the
well-defined property of operating on single tokens. Factoring out recovery
exposes opportunities for more consistent and tailored error recover at the
call sites instead of just relying on a bottled SkipUntil formula.
llvm-svn: 198270
|
| |
|
|
| |
llvm-svn: 198269
|
| |
|
|
| |
llvm-svn: 198268
|
| |
|
|
|
|
| |
Patch by Ilia Filippov!
llvm-svn: 198267
|
| |
|
|
| |
llvm-svn: 198266
|
| |
|
|
|
|
| |
realized we had no FP disassembler test cases.
llvm-svn: 198265
|
| |
|
|
|
|
| |
Patch by joey.gouly@arm.com
llvm-svn: 198264
|
| |
|
|
| |
llvm-svn: 198263
|
| |
|
|
| |
llvm-svn: 198262
|
| |
|
|
|
|
|
| |
Currently fails with:
gotsan.cc:7686:40: error: the address of 'int __sanitizer_pthread_attr_getstack(void*, void**, size_t*)' will always evaluate as 'true' [-Werror=address]
llvm-svn: 198261
|
| |
|
|
|
|
|
|
|
|
| |
Previously any error in enum definition body stopped parsing it. With this
change parser tries to recover from errors.
The patch fixes PR10982.
Differential Revision: http://llvm-reviews.chandlerc.com/D2018
llvm-svn: 198259
|
| |
|
|
| |
llvm-svn: 198258
|
| |
|
|
| |
llvm-svn: 198257
|
| |
|
|
|
|
|
| |
lib/ASTMatchers/ASTMatchFinder.cpp:276:28: error: typedef 'traverse_can_only_be_instantiated_with_base_type' locally defined but not used [-Werror=unused-local-typedefs]
traverse_can_only_be_instantiated_with_base_type);
llvm-svn: 198256
|
| |
|
|
|
|
|
|
|
| |
lib/Support/ThreadLocal.cpp:53:15: error: typedef 'SIZE_TOO_BIG' locally defined but not used [-Werror=unused-local-typedefs]
typedef int SIZE_TOO_BIG[sizeof(pthread_key_t) <= sizeof(data) ? 1 : -1];
Done the C++11 way, switching on and using LLVM_STATIC_ASSERT() instead of LLVM_ATTRIBUTE_UNUSED.
llvm-svn: 198255
|
| |
|
|
|
|
| |
functional change intended.
llvm-svn: 198254
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
A helper function is a C++ function, and so even though one of the two
definitions is weak, it still technically triggers the ODR. Perhaps
these two definitions are ODR equivalent, but I'm not even confident in
that.
Instead, just define the function once, declare it as weak, and use
a wrapper that is clearly file-local. This avoids two definitions. Also
make the function extern "C" so that we can't even mess up the type
signature somehow or otherwise fail to match up the weak declaration
here with the interceptor defined elsewhere.
llvm-svn: 198253
|
| |
|
|
|
|
|
| |
Includes a fix for a missing highlight range caused by a ',' typo in the PP
diagnostics.
llvm-svn: 198252
|
| |
|
|
| |
llvm-svn: 198249
|
| |
|
|
| |
llvm-svn: 198243
|
| |
|
|
| |
llvm-svn: 198241
|
| |
|
|
|
|
| |
can be handled by MRMXr instead.
llvm-svn: 198238
|
| |
|
|
|
|
|
|
| |
Checking the trailing letter of the mnemonic is insufficient. Be more thorough
in the scanning of the instruction to ensure that we correctly work with the
predicated mnemonics.
llvm-svn: 198235
|
| |
|
|
| |
llvm-svn: 198233
|