| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
llvm-svn: 117761
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
There were a number of issues to fix up here:
* The "device" argument of the llvm.memory.barrier intrinsic should be
used to distinguish the "Full System" domain from the "Inner Shareable"
domain. It has nothing to do with using DMB vs. DSB instructions.
* The compiler should never need to emit DSB instructions. Remove the
ARMISD::SYNCBARRIER node and also remove the instruction patterns for DSB.
* Merge the separate DMB/DSB instructions for options only used for the
disassembler with the default DMB/DSB instructions. Add the default
"full system" option ARM_MB::SY to the ARM_MB::MemBOpt enum.
* Add a separate ARMISD::MEMBARRIER_MCR node for subtargets that implement
a data memory barrier using the MCR instruction.
* Fix up encodings for these instructions (except MCR).
I also updated the tests and added a few new ones to check for DMB options
that were not currently being exercised.
llvm-svn: 117756
|
|
|
|
| |
llvm-svn: 117753
|
|
|
|
|
|
| |
conditional. Check for those instructions explicitly.
llvm-svn: 117747
|
|
|
|
|
|
| |
defs. rdar://8610857.
llvm-svn: 117745
|
|
|
|
| |
llvm-svn: 117742
|
|
|
|
| |
llvm-svn: 117741
|
|
|
|
| |
llvm-svn: 117740
|
|
|
|
|
|
| |
encoder functions.
llvm-svn: 117738
|
|
|
|
| |
llvm-svn: 117737
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
just
.type foo,@object
will produce an undefined reference to foo. On the other hand, a file with
just
.weakref bar, foo
will not. It is somewhat hard to support both in MC since both statements
should create the symbols. It should be possible if we really need to by
adding to the flags, but hopefully that is not necessary.
With this patch we do not produce a undefined reference in any of those cases.
The assembly file needs an actual use for the undefined reference to be
present.
This is in preparation for a patch implementing .weakref.
llvm-svn: 117735
|
|
|
|
| |
llvm-svn: 117728
|
|
|
|
| |
llvm-svn: 117727
|
|
|
|
| |
llvm-svn: 117722
|
|
|
|
|
|
|
|
| |
This code had previously used 2*N, where N is the mask length, to represent
undef. That is not safe because the shufflevector operands may have more
than N elements -- they don't have to match the result type.
llvm-svn: 117721
|
|
|
|
| |
llvm-svn: 117720
|
|
|
|
|
|
|
|
| |
Allow splats even if they don't match either of the original shuffles,
possibly due to undef entries in the shuffles masks. Radar 8597790.
Also fix some 80-column violations.
llvm-svn: 117719
|
|
|
|
| |
llvm-svn: 117718
|
|
|
|
|
|
| |
the ARMExpandPseudos pass rather than during the asm lowering.
llvm-svn: 117714
|
|
|
|
|
|
| |
failure for llvm-gcc on arm fast isel.
llvm-svn: 117710
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
propagation. Instruction simplification
needs to be guaranteed never to be run on an unreachable block. However, earlier block simplifications may have
changed the CFG to make block that were reachable when we began our iteration unreachable by the time we try to
simplify them. (Note that this also means that our depth-first iterators were potentially being invalidated).
This should not have a large impact on code quality, since later runs of instcombine should pick up these simplifications.
Fixes PR8506.
llvm-svn: 117709
|
|
|
|
|
|
| |
handle it in the asm lowering.
llvm-svn: 117707
|
|
|
|
| |
llvm-svn: 117703
|
|
|
|
|
|
| |
pseudos and a FIXME for TLS.
llvm-svn: 117702
|
|
|
|
|
|
|
| |
they may have ValuesAtScopes map entries referencing their outer loops.
This fixes a user-after-free reported in PR8471.
llvm-svn: 117698
|
|
|
|
| |
llvm-svn: 117695
|
|
|
|
| |
llvm-svn: 117687
|
|
|
|
| |
llvm-svn: 117677
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
operand and one of them has a single use that is a live out copy, favor the
one that is live out. Otherwise it will be difficult to eliminate the copy
if the instruction is a loop induction variable update. e.g.
BB:
sub r1, r3, #1
str r0, [r2, r3]
mov r3, r1
cmp
bne BB
=>
BB:
str r0, [r2, r3]
sub r3, r3, #1
cmp
bne BB
This fixed the recent 256.bzip2 regression.
llvm-svn: 117675
|
|
|
|
|
|
| |
- Compute CopyToReg use operand latency correctly.
llvm-svn: 117674
|
|
|
|
| |
llvm-svn: 117673
|
|
|
|
| |
llvm-svn: 117672
|
|
|
|
| |
llvm-svn: 117671
|
|
|
|
|
|
|
|
| |
We don't want unused values forming their own equivalence classes, so we lump
them all together in one class, and then merge them with the class of the last
used value.
llvm-svn: 117670
|
|
|
|
| |
llvm-svn: 117669
|
|
|
|
|
|
| |
basic logic, added initial platform support.
llvm-svn: 117667
|
|
|
|
| |
llvm-svn: 117666
|
|
|
|
|
|
|
| |
messages primarily indicate errors running the viewer, not
errors with the graph file itself.
llvm-svn: 117665
|
|
|
|
|
|
| |
being not found from the file being not executable.
llvm-svn: 117664
|
|
|
|
| |
llvm-svn: 117663
|
|
|
|
|
|
| |
executing the child process and abnormal child process termination.
llvm-svn: 117661
|
|
|
|
| |
llvm-svn: 117660
|
|
|
|
| |
llvm-svn: 117651
|
|
|
|
| |
llvm-svn: 117648
|
|
|
|
|
|
| |
fully enumerated.
llvm-svn: 117647
|
|
|
|
| |
llvm-svn: 117643
|
|
|
|
|
|
| |
from constant memory don't alias any stores.
llvm-svn: 117636
|
|
|
|
|
|
|
| |
EquvivalenceClasses.h except it looks like overkill when elements are continuous
integers.
llvm-svn: 117631
|
|
|
|
|
|
| |
multiplicity.
llvm-svn: 117630
|
|
|
|
| |
llvm-svn: 117629
|