- Aug 13, 2010
-
-
Bob Wilson authored
instruction opcode. This fixes part of PR7792. llvm-svn: 111047
-
- Aug 11, 2010
-
-
Evan Cheng authored
llvm-svn: 110787
-
Evan Cheng authored
memory and synchronization barrier dmb and dsb instructions. - Change instruction names to something more sensible (matching name of actual instructions). - Added tests for memory barrier codegen. llvm-svn: 110785
-
Daniel Dunbar authored
llvm-svn: 110780
-
Evan Cheng authored
llvm-svn: 110745
-
- Aug 10, 2010
-
-
Evan Cheng authored
llvm-svn: 110710
-
- Aug 08, 2010
-
-
Bill Wendling authored
relatively expensive comparison analyzer on each instruction. Also rename the comparison analyzer method to something more in line with what it actually does. This pass is will eventually be folded into the Machine CSE pass. llvm-svn: 110539
-
- Jul 31, 2010
-
-
Bob Wilson authored
the jtblock_operand print methods. This avoids extra newlines in the disassembler's output. PR7757. llvm-svn: 109948
-
- Jul 30, 2010
-
-
Jim Grosbach authored
have 4 bits per register in the operand encoding), but have undefined behavior when the operand value is 13 or 15 (SP and PC, respectively). The trivial coalescer in linear scan sometimes will merge a copy from SP into a subsequent instruction which uses the copy, and if that instruction cannot legally reference SP, we get bad code such as: mls r0,r9,r0,sp instead of: mov r2, sp mls r0, r9, r0, r2 This patch adds a new register class for use by Thumb2 that excludes the problematic registers (SP and PC) and is used instead of GPR for those operands which cannot legally reference PC or SP. The trivial coalescer explicitly requires that the register class of the destination for the COPY instruction contain the source register for the COPY to be considered for coalescing. This prevents errant instructions like that above. PR7499 llvm-svn: 109842
-
Nate Begeman authored
llvm-svn: 109813
-
- Jul 29, 2010
-
-
Nate Begeman authored
Add intrinsics __builtin_arm_qadd & __builtin_arm_qsub to allow access to the QADD & QSUB instructions. Behave identically to __qadd & __qsub RealView instruction intrinsics. llvm-svn: 109770
-
Jim Grosbach authored
Remove incorrect substitution pattern for UXTB16. It wrongly assumed the input shift was actually a rotate. rdar://8240138 llvm-svn: 109693
-
- Jul 20, 2010
-
-
Jim Grosbach authored
instruction selection to prefer it when possible. rdar://7903972 llvm-svn: 108844
-
- Jul 17, 2010
-
-
Jim Grosbach authored
and a combine pattern to use it for setting a bit-field to a constant value. More to come for non-constant stores. llvm-svn: 108570
-
- Jul 14, 2010
-
-
Jim Grosbach authored
in the literal field of an instruction. E.g., long long foo(long long a) { return a - 734439407618LL; } rdar://7038284 llvm-svn: 108339
-
Bob Wilson authored
Patch by Brian Lucas. PR7636. llvm-svn: 108332
-
- Jun 29, 2010
-
-
Evan Cheng authored
llvm-svn: 107122
-
- Jun 24, 2010
-
-
Eli Friedman authored
llvm-svn: 106770
-
- Jun 21, 2010
-
-
Jim Grosbach authored
being moved around away from the jump table it references. rdar://8104340 llvm-svn: 106483
-
- Jun 19, 2010
-
-
Evan Cheng authored
- This fixed a number of bugs in if-converter, tail merging, and post-allocation scheduler. If-converter now runs branch folding / tail merging first to maximize if-conversion opportunities. - Also changed the t2IT instruction slightly. It now defines the ITSTATE register which is read by instructions in the IT block. - Added Thumb2 specific hazard recognizer to ensure the scheduler doesn't change the instruction ordering in the IT block (since IT mask has been finalized). It also ensures no other instructions can be scheduled between instructions in the IT block. This is not yet enabled. llvm-svn: 106344
-
- Jun 02, 2010
-
-
Jim Grosbach authored
llvm-svn: 105350
-
- May 28, 2010
-
-
Jim Grosbach authored
llvm-svn: 104974
-
Jim Grosbach authored
make sure accesses to set up the jmpbuf don't get moved after it by the scheduler. Add a missing \n. llvm-svn: 104967
-
Jim Grosbach authored
an alloca() or an llvm.stackrestore(). rdar://8031573 llvm-svn: 104900
-
- May 26, 2010
-
-
Jim Grosbach authored
llvm-svn: 104661
-
- May 25, 2010
-
-
Bob Wilson authored
I don't know of any particular reason why that would be important, but neither can I see any reason to disallow it. llvm-svn: 104583
-
Bob Wilson authored
Thumb2 ADD and SUB instructions: allow RSB instructions be changed to set the condition codes, and allow RSBS instructions to be predicated. llvm-svn: 104582
-
Bob Wilson authored
version of t2MVN already allowed that, but not the register versions. llvm-svn: 104570
-
- May 24, 2010
-
-
Bob Wilson authored
Fix it by changing the T2I_rbin_s_is multiclass to handle the CPSR output and 'S' suffix in the same way as T2I_bin_s_irs. llvm-svn: 104531
-
- May 19, 2010
-
-
Evan Cheng authored
t2LEApcrel and tLEApcrel are re-materializable. This makes it possible to hoist more loads during machine LICM. llvm-svn: 104115
-
Evan Cheng authored
Mark pattern-less mayLoad / mayStore instructions neverHasSideEffects. These do not have other un-modeled side effects. llvm-svn: 104111
-
Evan Cheng authored
Mark a few more pattern-less instructions with neverHasSideEffects. This is especially important on instructions like t2LEApcreal which are prime candidate for machine LICM. llvm-svn: 104102
-
- May 16, 2010
-
-
Anton Korobeynikov authored
llvm-svn: 103903
-
- May 06, 2010
-
-
Jim Grosbach authored
instructions to subtarget features and update tests to reflect. PR5717. llvm-svn: 103136
-
- May 05, 2010
-
-
Jim Grosbach authored
Jordy <snhjordy@gmail.com>. Followup patches will add some tests and adjust to use Subtarget features for the instructions. llvm-svn: 103119
-
- Apr 09, 2010
-
-
Bob Wilson authored
such that the non-VFP versions have no implicit defs of VFP registers. If any callee-saved VFP registers are marked as having been defined, the prologue/epilogue code will try to save and restore them. Radar 7770432. llvm-svn: 100892
-
- Mar 16, 2010
-
-
Bob Wilson authored
instructions for ld/st with writeback, the flag is completely redundant. llvm-svn: 98643
-
- Mar 13, 2010
-
-
Bob Wilson authored
writebacks to the address register. This gets rid of the hack that the first register on the list was the magic writeback register operand. There was an implicit constraint that if that operand was not reg0 it had to match the base register operand. The post-RA scheduler's antidependency breaker did not understand that constraint and sometimes changed one without the other. This also fixes Radar 7495976 and should help the verifier work better for ARM code. There are now new ld/st instructions explicit writeback operands and explicit constraints that tie those registers together. llvm-svn: 98409
-
- Mar 11, 2010
-
-
Johnny Chen authored
instead of Pseudo, which helps Thumb decoder to recognize them as Thumb instr. llvm-svn: 98285
-
Johnny Chen authored
Plus fixed the encoding of t2LDRDpci such that P = 1 and W = 0 (offset mode). llvm-svn: 98217
-