| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
| |
Patch by Clement Courbet
llvm-svn: 266986
|
| |
|
|
|
|
| |
Differential Revision: http://reviews.llvm.org/D14822
llvm-svn: 266985
|
| |
|
|
|
|
|
|
|
|
| |
Reviewers: nhaustov, tstellarAMD
Subscribers: arsenm
Differential Revision: http://reviews.llvm.org/D19317
llvm-svn: 266984
|
| |
|
|
|
|
|
|
| |
VPGATHER{QD|QQ|DD|DQ} and VGATHERPF{0|1}{DPS|QPS|DPD|QPD} instruction set .
Differential Revision: http://reviews.llvm.org/D19224
llvm-svn: 266983
|
| |
|
|
| |
llvm-svn: 266982
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
A DenseMap doesn't store the hashes, so it needs to recompute them when
the table is resized.
In some applications the hashing cost is noticeable. That is the case
for example in lld for symbol names (StringRef).
This patch adds a templated structure that can wraps any value that can
go in a DenseMap and caches the hash.
llvm-svn: 266981
|
| |
|
|
|
|
| |
Differential Revision: http://reviews.llvm.org/D18855
llvm-svn: 266980
|
| |
|
|
| |
llvm-svn: 266979
|
| |
|
|
| |
llvm-svn: 266978
|
| |
|
|
|
|
|
|
| |
instructions and add tests for LWM32 and SWM32
Differential Revision: http://reviews.llvm.org/D19150
llvm-svn: 266977
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Quit parsing MS-style inline assembly if the following statement has GCC style.
Enables compilation of code like
void f() {
__asm mov ebx, ecx
__asm__("movl %ecx, %edx");
}
Differential Revision: http://reviews.llvm.org/D18652
llvm-svn: 266976
|
| |
|
|
|
|
|
| |
It breaks on windows, need to investigate. It's not testing the
important part of that change anyways.
llvm-svn: 266975
|
| |
|
|
|
|
|
|
|
|
|
| |
SectionOrder vector was a part of LinkerScript class.
It can be removed because Commands vector contains the
same information and SectiorOrder is just a subset.
Differential revision: http://reviews.llvm.org/D19171
llvm-svn: 266974
|
| |
|
|
|
|
|
|
|
| |
This allows using a different standard library (the one from argv[0] in
the compilation database) with the correct builtins.
Differential Revision: http://reviews.llvm.org/D19356
llvm-svn: 266973
|
| |
|
|
|
|
|
|
|
|
|
| |
Add -miamcu option which:
* Sets IAMCU triple
* Sets IAMCU ABI
* Enforces static compilation
Differential Revision: http://reviews.llvm.org/D18398
llvm-svn: 266972
|
| |
|
|
| |
llvm-svn: 266971
|
| |
|
|
|
|
|
|
|
|
| |
Reviewers: bkramer
Subscribers: cfe-commits
Differential Revision: http://reviews.llvm.org/D19323
llvm-svn: 266970
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
AArch64InstrInfo::optimizeCompareInstr
AArch64InstrInfo::optimizeCompareInstr has bug PR27158 which causes generation of incorrect code.
A compare instruction is substituted with another instruction which does not
produce the same flags as the original compare instruction.
This patch contains:
1. Fix of the bug.
2. A regression test in MIR.
3. A new test to check that SUBS is replaced by SUB.
Differential Revision: http://reviews.llvm.org/D18838
llvm-svn: 266969
|
| |
|
|
| |
llvm-svn: 266968
|
| |
|
|
|
|
| |
the runs. Update check patterns accordingly.
llvm-svn: 266967
|
| |
|
|
| |
llvm-svn: 266966
|
| |
|
|
|
| |
From: Mehdi Amini <mehdi.amini@apple.com>
llvm-svn: 266965
|
| |
|
|
|
| |
From: Mehdi Amini <mehdi.amini@apple.com>
llvm-svn: 266964
|
| |
|
|
| |
llvm-svn: 266963
|
| |
|
|
|
|
| |
EXTRACT_VECTOR_ELT/INSERT_VECTOR_ELT from SSE41 block. They were already done in an earlier block. NFC
llvm-svn: 266962
|
| |
|
|
|
|
| |
Instead let them stay Legal and mark them Expand for specific types where needed. Reduces overall number of calls to setOperationAction. NFC
llvm-svn: 266961
|
| |
|
|
|
|
| |
operations to Expand. These vector types aren't legal so these operations would never make it far enough to need to expand. NFC
llvm-svn: 266960
|
| |
|
|
|
|
|
| |
Differential Revision: http://reviews.llvm.org/D18494
From: Mehdi Amini <mehdi.amini@apple.com>
llvm-svn: 266959
|
| |
|
|
|
|
|
|
|
|
|
|
| |
This help to streamline the process of handling importing since
we don't need to special case alias everywhere: just like
linkonce_odr function, make sure at least one alias is emitted
by turning it weak.
Differential Revision: http://reviews.llvm.org/D19308
From: Mehdi Amini <mehdi.amini@apple.com>
llvm-svn: 266958
|
| |
|
|
| |
llvm-svn: 266957
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
when setting LIBCXX_ENABLE_EXCEPTIONS=false, _LIBCPP_NO_EXCEPTIONS wil be defined in both commandline and _config
Reviewers: bcraig, EricWF
Subscribers: cfe-commits
Differential Revision: http://reviews.llvm.org/D19344
llvm-svn: 266956
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
`llvm.guard(false)` always bails out of the current compilation unit, so
we can prune any control flow following it.
Reviewers: hfinkel, pcc, reames
Subscribers: majnemer, reames, mcrosier, llvm-commits
Differential Revision: http://reviews.llvm.org/D19245
llvm-svn: 266955
|
| |
|
|
|
|
|
| |
-> Drop linkage when converting to decl
-> Handling of unnamed_addr.
llvm-svn: 266954
|
| |
|
|
|
|
|
| |
This is not on by default (but it might be in the future).
The knob to enable the optimization is -lto-discard-value-names.
llvm-svn: 266953
|
| |
|
|
|
|
|
|
| |
types where we can't do any better than the Custom lowering of CTTZ. LegalizeVectorOps will expand to CTTZ since its marked Custom.
CTTZ_ZERO_UNDEF can be custom lowered specially if CTLZ is supported. Otherwise CTTZ and CTTZ_ZERO_UNDEF are handled the same way by using CTPOP and bitmath.
llvm-svn: 266952
|
| |
|
|
|
|
|
|
| |
CTTZ_ZERO_UNDEF/CTLZ_ZERO_UNDEF to CTTZ/CTLZ directly if those ops are Legal/Custom instead of deferring it to LegalizeOps.
This is needed to support CTTZ/CTLZ Custom correctly since LegalizeOps would be too late to do the custom lowering.
llvm-svn: 266951
|
| |
|
|
|
|
|
|
| |
instructions.
Without BWI we have to split the vectors into 256-bit vectors so we can use AVX2 pshufb and then concatenate the results.
llvm-svn: 266950
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The iteratitive algorithm from r265456 claimed but failed to create a
post-order traversal. It had the same error that was fixed in the
ValueEnumerator in r266947: now, instead of pushing all operands on the
worklist at once, we pause whenever an operand gets pushed in order to
go depth-first (I know, it sounds obvious).
Sadly, I have no idea how to observe this from outside the algorithm and
so I haven't written a test. The output should be the same; it should
just use fewer temporary nodes now. I've added some comments that I
hope make the current logic clear enough it's unlikely to regress.
llvm-svn: 266949
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
performing importing
Summary:
The function importer already decided what symbols need to be pulled
in. Also these magically added ones will not be in the export list
for the source module, which can confuse the internalizer for
instance.
Reviewers: tejohnson, rafael
Subscribers: joker.eph, llvm-commits
Differential Revision: http://reviews.llvm.org/D19096
From: Mehdi Amini <mehdi.amini@apple.com>
llvm-svn: 266948
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Emit metadata nodes in post-order. The iterative algorithm from r266709
failed to maintain this property. After understanding my mistake, it
wasn't too hard to write a test with llvm-bcanalyzer (and I've actually
made this change once before: see r220340).
This also reverts the "noisy" testcase change from r266709. That should
have been more of a red flag :/.
Note: The same bug crept into the ValueMapper in r265456. I'm still
working on the fix.
llvm-svn: 266947
|
| |
|
|
| |
llvm-svn: 266946
|
| |
|
|
|
|
|
|
|
| |
xmmintrin.h a bit more directed. If for whatever reason modules are enabled but
we textually include one of these headers, don't deploy the special case for
modules. To make this work cleanly, extend __building_module to be defined
even when modules is disabled.
llvm-svn: 266945
|
| |
|
|
|
|
|
|
|
|
|
| |
Code was added in ClangExpressionParser::ClangExpressionParser that was calling through
the process w/o checking that it was good. Also, we were pretending that we could do something
reasonable if we had no target, but that's actually not true, so I check for a target at the
beginning of the constructor and don't make a compiler in that case.
<rdar://problem/25841198>
llvm-svn: 266944
|
| |
|
|
| |
llvm-svn: 266943
|
| |
|
|
| |
llvm-svn: 266942
|
| |
|
|
|
|
| |
and lacked clarity.)
llvm-svn: 266941
|
| |
|
|
|
|
| |
words in REPL mode.
llvm-svn: 266940
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
on knowledge of the sign bit for A and B.
No matter what value you OR in to A, the result of (or A, B) is going to be UGE A. When A and B are positive, it's SGE too. If A is negative, OR'ing a value into it can't make it positive, but can increase its value closer to -1, therefore (or A, B) is SGE A. Working through all possible combinations produces this truth table:
```
A is
+, -, +/-
F F F + B is
T F ? -
? F ? +/-
```
The related optimizations are flipping the 'slt' for 'sge' which always NOTs the result (if the result is known), and swapping the LHS and RHS while swapping the comparison predicate.
There are more idioms left to implement (aren't there always!) but I've stopped here because any more would risk becoming unreasonable for reviewers.
llvm-svn: 266939
|
| |
|
|
|
|
|
|
| |
We kept this around for a while since Xcode 6 and earlier had a build
setting for this warning. It was removed in Xcode 7 so there should be
no need for this warning now.
llvm-svn: 266938
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
in the compile unit that contains their implementation even if their
interface is declared in a module.
The private @implementation of an @interface may have additional
hidden ivars so we should not defer to the public version of the
type that is found in the module.
<rdar://problem/25541798>
llvm-svn: 266937
|