| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
|
|
|
|
| |
This option is from 2010, designed to work around a linker issue on Darwin for
ARM. According to grosbach this is no longer an issue and this option can
safely be removed.
llvm-svn: 203576
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Tail call optimisation was previously disabled on all targets other than
iOS5.0+. This enables the tail call optimisation on all Thumb 2 capable
platforms.
The test adjustments are to remove the IR hint "tail" to function invocation.
The tests were designed assuming that tail call optimisations would not kick in
which no longer holds true.
llvm-svn: 203575
|
| |
|
|
|
|
|
|
|
|
| |
After r203553 overflow intrinsics and their non-intrinsic (normal)
instruction get hashed to the same value. This patch prevents PRE from
moving an instruction into a predecessor block, and trying to add a phi
node that gets two different types (the intrinsic result and the
non-intrinsic result), resulting in a failing assert.
llvm-svn: 203574
|
| |
|
|
| |
llvm-svn: 203573
|
| |
|
|
|
|
|
|
| |
isn't necessary anymore.
Fixes https://code.google.com/p/address-sanitizer/issues/detail?id=266.
llvm-svn: 203572
|
| |
|
|
| |
llvm-svn: 203568
|
| |
|
|
|
|
|
|
|
| |
ATOMIC_STORE operations always get here as a lowered ATOMIC_SWAP, so there's no
need for any code to handle them specially.
There should be no functionality change so no tests.
llvm-svn: 203567
|
| |
|
|
|
|
| |
currently any type attributes which would apply to a lambda, except in MSVC compatibility mode.
llvm-svn: 203566
|
| |
|
|
|
|
| |
the parameter list wasn't present.
llvm-svn: 203565
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Someone could write:
if (0) {
__c11_atomic_load(ptr, memory_order_release);
}
or the equivalent, which is perfectly valid, so we shouldn't outright reject
invalid orderings on purely static grounds.
rdar://problem/16242991
llvm-svn: 203564
|
| |
|
|
|
|
|
| |
The code added nothing but potentially disabled move semantics and made
types non-trivially copyable.
llvm-svn: 203563
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Before:
auto aaaaaaaa = [](int i, // break
int j)
-> int {
return fffffffffffffffffffffffffffffffffffffff(i * j);
};
After:
auto aaaaaaaa = [](int i, // break
int j) -> int {
return fffffffffffffffffffffffffffffffffffffff(i * j);
};
llvm-svn: 203562
|
| |
|
|
|
|
|
|
|
| |
This is a conservative check, because it's valid for the expression to be
non-constant, and in cases like that we just don't know whether it's valid.
rdar://problem/16242991
llvm-svn: 203561
|
| |
|
|
|
|
| |
rdar://problem/15996804
llvm-svn: 203560
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The syntax for "cmpxchg" should now look something like:
cmpxchg i32* %addr, i32 42, i32 3 acquire monotonic
where the second ordering argument gives the required semantics in the case
that no exchange takes place. It should be no stronger than the first ordering
constraint and cannot be either "release" or "acq_rel" (since no store will
have taken place).
rdar://problem/15996804
llvm-svn: 203559
|
| |
|
|
|
|
|
| |
My last commit did not add the indexes to the hashed value for
extractvalue. Adding that back in.
llvm-svn: 203558
|
| |
|
|
|
|
|
|
|
|
| |
Before:
int i = (*b)[a] -> f();
After:
int i = (*b)[a]->f();
llvm-svn: 203557
|
| |
|
|
|
|
|
|
|
|
| |
Before:
int i = a[a][a] -> f();
After:
int i = a[a][a]->f();
llvm-svn: 203556
|
| |
|
|
|
|
|
|
| |
This header is generally not available on mingw and can cause build errors.
The windows host code does provide timespec definition that can be used for
mingw case.
llvm-svn: 203555
|
| |
|
|
|
|
| |
Unfortunately, msvc 2012 didn't accept non-static member initializer.
llvm-svn: 203554
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When an overflow intrinsic is followed by a non-overflow instruction,
replace the latter with an extract. For example:
%sadd = tail call { i32, i1 } @llvm.sadd.with.overflow.i32(i32 %a, i32 %b)
%sadd3 = add i32 %a, %b
Here the add statement will be replaced by an extract.
When an overflow intrinsic follows a non-overflow instruction, a clone
of the intrinsic is inserted before the normal instruction, which makes
it the same as the previous case. Subsequent runs of GVN can then clean
up the duplicate instructions and insert the extract.
This fixes PR8817.
llvm-svn: 203553
|
| |
|
|
| |
llvm-svn: 203552
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Before:
void f() {
MACRO((const AA & a) { return 1; });
}
After:
void f() {
MACRO((const AA &a) { return 1; });
}
llvm-svn: 203551
|
| |
|
|
| |
llvm-svn: 203550
|
| |
|
|
| |
llvm-svn: 203549
|
| |
|
|
|
|
| |
ready for this yet.
llvm-svn: 203548
|
| |
|
|
|
|
| |
class.
llvm-svn: 203547
|
| |
|
|
|
|
|
|
| |
Some of this data had gotten out of date, so we weren't quite testing
what we thought we were. This also moves the outdated data test to its
own file to simplify regenerating the test data.
llvm-svn: 203546
|
| |
|
|
|
|
| |
in 203525)
llvm-svn: 203545
|
| |
|
|
|
|
|
|
|
|
|
|
| |
In case we are at the innermost band, we try to prepare for vectorization. This
means, we look for the innermost parallel loop and strip mine this loop to the
innermost level using a strip-mine factor corresponding to the number of vector
iterations.
For whatever reason, the code that implemented this feature was broken. We now
added a comment, a test case and obviously also the right code.
llvm-svn: 203544
|
| |
|
|
|
|
| |
class.
llvm-svn: 203543
|
| |
|
|
|
|
|
|
|
|
| |
framework import (non-absolute path)
then we fail to find it if it is re-included later on.
rdar://16285490
llvm-svn: 203542
|
| |
|
|
|
|
|
|
| |
These tests are logically related, but they're spread about several
different CodeGen directories. Consolidate them in one place to make
them easier to manage.
llvm-svn: 203541
|
| |
|
|
|
|
|
| |
Checking if the host arch is in the triple isn't quite correct. Change
the feature test to match llvm's, which made the same change in r193459.
llvm-svn: 203540
|
| |
|
|
|
|
| |
libc++ already does the right thing here; I've just added tests to ensure that it stays this way.
llvm-svn: 203539
|
| |
|
|
|
|
| |
overridden itself.
llvm-svn: 203538
|
| |
|
|
|
|
| |
class.
llvm-svn: 203537
|
| |
|
|
| |
llvm-svn: 203536
|
| |
|
|
|
|
|
| |
-Wunused-comparison. Also, newly warn on unused result from overloaded
relational comparisons, now also in -Wunused-comparison.
llvm-svn: 203535
|
| |
|
|
|
|
|
| |
already been loaded, apply that update record to the Decl immediately, rather
than adding it to a pending list and never applying it.
llvm-svn: 203534
|
| |
|
|
| |
llvm-svn: 203533
|
| |
|
|
|
|
|
|
|
| |
Check if the compiler actually supports the flags that are being added.
Previously, the compiler flags would be used improperly push the flags to the
compiler. Particularly, on Darwin, the option would be pushed to the compiler
even if it does not support it.
llvm-svn: 203532
|
| |
|
|
| |
llvm-svn: 203531
|
| |
|
|
|
|
|
| |
The official specifications state the name to be ARMNT (as per the Microsoft
Portable Executable and Common Object Format Specification v8.3).
llvm-svn: 203530
|
| |
|
|
| |
llvm-svn: 203529
|
| |
|
|
|
|
|
|
| |
to absolute paths when building the includes file for the module. Without this,
the module build would fail, because the relative paths we were using are not
necessarily relative to a directory in our include path.
llvm-svn: 203528
|
| |
|
|
| |
llvm-svn: 203527
|
| |
|
|
| |
llvm-svn: 203526
|
| |
|
|
| |
llvm-svn: 203525
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When the MOVBE instructions are available, use them for 16-bit endian
swapping as well as for 32 and 64 bit.
The patterns were already present on the instructions, but weren't being
matched because the operation was unconditionally marked to 'Expand.'
Change that to be conditional on whether the MOVBE instructions are
available. Use 'rolw' to implement the in-register version (32 and 64
bit have the dedicated 'bswap' instruction for that).
Patch by Louis Gerbarg <lgg@apple.com>.
rdar://15479984
llvm-svn: 203524
|