| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
| |
The landingpad instruction can be removed only when its invokes are removed.
llvm-svn: 138930
|
| |
|
|
|
|
|
|
|
| |
Added canClobberReachingPhysRegUse() to handle a particular pattern in
which a two-address instruction could be forced to interfere with
EFLAGS, causing a compare to be unnecessarilly cloned.
Fixes rdar://problem/5875261
llvm-svn: 138924
|
| |
|
|
|
|
|
|
| |
InstructionList.
This was found via a nightly build of 483.xalancbmk.
llvm-svn: 138923
|
| |
|
|
| |
llvm-svn: 138922
|
| |
|
|
| |
llvm-svn: 138918
|
| |
|
|
|
|
|
| |
Make sure the low bit of the PC is set when loading an address directly
for jump tables in static relocation model.
llvm-svn: 138912
|
| |
|
|
|
|
| |
Thumb2 branches. However, this exposed a number of situations where the decoder was too permissive in allowing invalid instructions to decode successful. Specify additional fixed bits to close those gaps.
llvm-svn: 138910
|
| |
|
|
|
|
| |
Stores sizes as uint64_t to avoid possible truncation.
llvm-svn: 138901
|
| |
|
|
| |
llvm-svn: 138898
|
| |
|
|
| |
llvm-svn: 138897
|
| |
|
|
| |
llvm-svn: 138896
|
| |
|
|
| |
llvm-svn: 138895
|
| |
|
|
|
|
|
|
|
| |
The landingpad instruction is required in the landing pad block. Because we're
not deleting terminating instructions, the invoke may still jump to here (see
Transforms/SCCP/2004-11-16-DeadInvoke.ll). Remove all uses of the landingpad
instruction, but keep it around until code-gen can remove the basic block.
llvm-svn: 138890
|
| |
|
|
| |
llvm-svn: 138889
|
| |
|
|
| |
llvm-svn: 138887
|
| |
|
|
|
|
|
|
| |
need to preserve the sign of the index. This fixes miscompilations of Quicksort in the nightly testsuite, and hopefully others as well.
<rdar://problem/10046188>
llvm-svn: 138885
|
| |
|
|
|
|
|
|
| |
When we want encoding T3 (the wide encoding), we can explicitly check for
that and twiddle the CanAcceptCarrySet accordingly. For now, just correctly
handle encodings T1 and T2 when in Thumb2 mode.
llvm-svn: 138879
|
| |
|
|
|
|
| |
by Micah Villmow. (No testcase because the issue only showed up in an out-of-tree backend.)
llvm-svn: 138877
|
| |
|
|
|
|
| |
instead of labels.
llvm-svn: 138874
|
| |
|
|
| |
llvm-svn: 138873
|
| |
|
|
|
|
| |
implements 64-bit atomic load/store for ARM.
llvm-svn: 138872
|
| |
|
|
|
|
|
| |
Also add instruction aliases for non-.w versions of SBC since they're the
same.
llvm-svn: 138871
|
| |
|
|
|
|
|
|
| |
verifier accordingly.
This fixes ptype.exp gdb testsuite regressions.
llvm-svn: 138869
|
| |
|
|
| |
llvm-svn: 138868
|
| |
|
|
| |
llvm-svn: 138866
|
| |
|
|
|
|
|
| |
Emit a repeated sequence of bytes using .zero. This saves an enormous
amount of asm file space for certain programs.
llvm-svn: 138864
|
| |
|
|
|
|
|
|
| |
When the destination register of an add immediate instruction is
explicitly specified, encoding T1 is preferred, else encoding T2 is
preferred.
llvm-svn: 138862
|
| |
|
|
|
|
|
|
|
|
|
| |
It appears that our use of the imp-use and imp-def flags with
sub-registers is not yet robust enough to support this.
The failing test case is complicated, I am working on a reduction.
<rdar://problem/10044201>
llvm-svn: 138861
|
| |
|
|
| |
llvm-svn: 138858
|
| |
|
|
|
|
| |
Hopefully this will fix gcc testsuite failures.
llvm-svn: 138856
|
| |
|
|
|
|
| |
Patch by Sanjoy Das
llvm-svn: 138853
|
| |
|
|
|
|
|
|
| |
- Duplicate some store patterns to their AVX forms!
- Catched a bug while restricting the patterns subtarget, fix it
and update a testcase to check it properly
llvm-svn: 138851
|
| |
|
|
| |
llvm-svn: 138850
|
| |
|
|
|
|
| |
whenever AVX is enabled.
llvm-svn: 138849
|
| |
|
|
| |
llvm-svn: 138848
|
| |
|
|
| |
llvm-svn: 138846
|
| |
|
|
| |
llvm-svn: 138845
|
| |
|
|
|
|
|
| |
ssa, so it has to be run really early in the pipeline. Any replacement
should probably use the SSAUpdater.
llvm-svn: 138841
|
| |
|
|
|
|
| |
other the EQ/NE. Discovered by roundtrip testing.
llvm-svn: 138840
|
| |
|
|
|
|
| |
than labels.
llvm-svn: 138837
|
| |
|
|
| |
llvm-svn: 138836
|
| |
|
|
|
|
| |
instead of labels.
llvm-svn: 138835
|
| |
|
|
|
|
| |
necessary for round-tripping.
llvm-svn: 138834
|
| |
|
|
| |
llvm-svn: 138833
|
| |
|
|
| |
llvm-svn: 138832
|
| |
|
|
| |
llvm-svn: 138829
|
| |
|
|
|
|
| |
disabled.
llvm-svn: 138826
|
| |
|
|
|
|
|
| |
In the case of EDInstInfo, this would actually cause a bug when -1 became 255
and was then compared >=0 in llvm-mc/Disassembler.cpp.
llvm-svn: 138825
|
| |
|
|
|
|
|
|
|
|
|
|
| |
code is inserted to first check if the current stacklet has enough
space. If so, space is allocated by simply decrementing the stack
pointer. Otherwise a runtime routine (__morestack_allocate_stack_space
in libgcc) is called which allocates the required memory from the
heap.
Patch by Sanjoy Das.
llvm-svn: 138818
|
| |
|
|
|
|
|
|
|
|
|
|
| |
from DYNAMIC_STACKALLOC.
Two new pseudo instructions (SEG_ALLOCA_32 and SEG_ALLOCA_64) which
will match X86SegAlloca (based on word size) are also added. They
will be custom emitted to inject the actual stack handling code.
Patch by Sanjoy Das.
llvm-svn: 138814
|