| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
| |
use a constant pool.
llvm-svn: 142485
|
|
|
|
| |
llvm-svn: 142484
|
|
|
|
| |
llvm-svn: 142460
|
|
|
|
|
|
| |
used with the CMP instruction.
llvm-svn: 142458
|
|
|
|
|
|
|
| |
register and then compare against that" method when it's too large. We have to
move the value into the register in the "movw, movt" pair of instructions.
llvm-svn: 142440
|
|
|
|
|
|
|
| |
register and then compare against that" method when it's too large. We have to
move the value into the register in the "movw, movt" pair of instructions.
llvm-svn: 142437
|
|
|
|
|
|
|
| |
instruction. Move the value into a register and then use that for the CMP.
<rdar://problem/10305266>
llvm-svn: 142431
|
|
|
|
|
|
|
| |
and use that in the CMP.
<rdar://problem/10305266>
llvm-svn: 142429
|
|
|
|
|
|
|
|
| |
Clean up the patterns, fix comments, and avoid confusing both tools
and coders. Note that the special adds/subs SelectionDAG nodes no
longer have the dummy cc_out operand.
llvm-svn: 142397
|
|
|
|
| |
llvm-svn: 142395
|
|
|
|
| |
llvm-svn: 142394
|
|
|
|
|
|
|
|
|
|
| |
predecessor to remove the jump to it as well. Delay clearing the 'landing pad'
flag until after the jumps have been removed. (There is an implicit assumption
in several modules that an MBB which jumps to a landing pad has only two
successors.)
<rdar://problem/10304224>
llvm-svn: 142390
|
|
|
|
|
|
| |
<rdar://problem/10298332>
llvm-svn: 142371
|
|
|
|
|
|
| |
build with gcc-4.6.
llvm-svn: 142350
|
|
|
|
|
|
| |
pass renumbers the blocks again.
llvm-svn: 142258
|
|
|
|
|
|
|
| |
Once the intrinsics are marked as having a custom inserter, it will call this
method to emit the dispatch table into the machine function.
llvm-svn: 142245
|
|
|
|
| |
llvm-svn: 142176
|
|
|
|
|
|
| |
promoting elements.
llvm-svn: 142080
|
|
|
|
| |
llvm-svn: 142027
|
|
|
|
|
|
| |
Fixes PR11129.
llvm-svn: 142022
|
|
|
|
|
|
| |
machine op.
llvm-svn: 142021
|
|
|
|
|
|
|
|
|
|
| |
registers.
The callee-saved registers cannot be live across an invoke call because the
control flow may continue along the exceptional edge. When this happens, all of
the callee-saved registers are no longer valid.
llvm-svn: 142018
|
|
|
|
| |
llvm-svn: 141903
|
|
|
|
| |
llvm-svn: 141591
|
|
|
|
|
|
| |
hang, and possibly SPEC/CINT2006/464_h264ref.
llvm-svn: 141560
|
|
|
|
|
|
|
|
|
|
|
| |
successor. Remove the old landing pad from their successor list, because it's
now the successor of the dispatch block. Now that the landing pad blocks are no
longer the destination of invokes, we can mark them as normal basic blocks
instead of landing pads.
This more closely resembles what the CFG is actually doing.
llvm-svn: 141436
|
|
|
|
|
|
|
| |
it with the new SjLj emitter stuff. This way there's no need to emit that
kind-of-hacky intrinsic.
llvm-svn: 141419
|
|
|
|
|
|
| |
do. This will be useful later on with the new SJLJ stuff.
llvm-svn: 141416
|
|
|
|
| |
llvm-svn: 141370
|
|
|
|
| |
llvm-svn: 141368
|
|
|
|
|
|
| |
Patch by Ana Pazos!
llvm-svn: 141365
|
|
|
|
| |
llvm-svn: 141342
|
|
|
|
|
|
|
| |
others. They take the call site value. Determine if it's a proper value. And
then jumps to the correct call site via a jump table.
llvm-svn: 141341
|
|
|
|
| |
llvm-svn: 141327
|
|
|
|
|
|
| |
functionality change.
llvm-svn: 141323
|
|
|
|
|
|
| |
Place the immediate to OR into a register so that it works.
llvm-svn: 141319
|
|
|
|
|
|
| |
* Some code cleanup.
llvm-svn: 141317
|
|
|
|
|
|
|
|
| |
to an infinite loop because of the def-use chains.
Also use a frame load instead of store for the LD instruction.
llvm-svn: 141263
|
|
|
|
|
|
| |
number (18) for the proper addressing mode.
llvm-svn: 141245
|
|
|
|
|
|
| |
the value exceeds that number.
llvm-svn: 141143
|
|
|
|
|
|
|
| |
This is a first pass at generating the jump table for the sjlj dispatch. It
currently generates something plausible, but hasn't been tested thoroughly.
llvm-svn: 141140
|
|
|
|
|
|
| |
heard that some people use it.
llvm-svn: 141042
|
|
|
|
|
|
|
|
|
|
|
| |
This code will replace the version in ARMAsmPrinter.cpp. It creates a new
machine basic block, which is the dispatch for the return from a longjmp
call. It then shoves the address of that machine basic block into the correct
place in the function context so that the EH runtime will jump to it directly
instead of having to go through a compare-and-jump-to-the-dispatch bit. This
should be more efficient in the common case.
llvm-svn: 141031
|
|
|
|
| |
llvm-svn: 140939
|
|
|
|
|
|
| |
and block addresses.
llvm-svn: 140936
|
|
|
|
|
|
|
|
|
|
|
| |
Encode the immediate into its 8-bit form as part of isel rather than later,
which simplifies things for mapping the encoding bits, allows the removal
of the custom disassembler decoding hook, makes the operand printer trivial,
and prepares things more cleanly for handling these in the asm parser.
rdar://10211428
llvm-svn: 140834
|
|
|
|
|
|
|
|
| |
ends up introducing a cycle in the DAG.
rdar://10196296
llvm-svn: 140733
|
|
|
|
|
|
| |
2011-06-09-TailCallByVal and 2010-11-04-BigByval
llvm-svn: 140516
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is still a hack until we can teach tblgen to generate the
optional CPSR operand rather than an implicit CPSR def. But the
strangeness is now limited to the selection DAG. ADD/SUB MI's no
longer have implicit CPSR defs, nor do we allow flag setting variants
of these opcodes in machine code. There are several corner cases to
consider, and getting one wrong would previously lead to nasty
miscompilation. It's not the first time I've debugged one, so this
time I added enough verification to ensure it won't happen again.
llvm-svn: 140228
|
|
|
|
|
|
|
|
|
|
|
| |
Modified ARMISelLowering::AdjustInstrPostInstrSelection to handle the
full gamut of CPSR defs/uses including instructins whose "optional"
cc_out operand is not really optional. This allowed removal of the
hasPostISelHook to simplify the .td files and make the implementation
more robust.
Fixes rdar://10137436: sqlite3 miscompile
llvm-svn: 140134
|