- Nov 13, 2010
-
-
Bill Wendling authored
llvm-svn: 118999
-
Bill Wendling authored
llvm-svn: 118998
-
Bill Wendling authored
future to separate out the ia, ib, da, db variants of the load/store multiple instructions. llvm-svn: 118995
-
Evan Cheng authored
llvm-svn: 118985
-
Evan Cheng authored
llvm-svn: 118968
-
Owen Anderson authored
llvm-svn: 118942
-
Owen Anderson authored
llvm-svn: 118939
-
- Nov 12, 2010
-
-
Evan Cheng authored
llvm-svn: 118935
-
Owen Anderson authored
llvm-svn: 118924
-
- Nov 04, 2010
-
-
Evan Cheng authored
Fix @llvm.prefetch isel. Selecting between pld / pldw using the first immediate rw. There is currently no intrinsic that matches to pli. llvm-svn: 118237
-
- Nov 03, 2010
-
-
Evan Cheng authored
Fix preload instruction isel. Only v7 supports pli, and only v7 with mp extension supports pldw. Add subtarget attribute to denote mp extension support and legalize illegal ones to nothing. llvm-svn: 118160
-
-
Jim Grosbach authored
parts. Represent the operation mode as an optional operand instead. rdar://8614429 llvm-svn: 118137
-
Chris Lattner authored
ins/outs list that isn't specified by their asmstring. Previously the asmmatcher would just force a 0 register into it, which clearly isn't right. Mark a bunch of ARM instructions that use this as isCodeGenOnly. Some of them are clearly pseudo instructions (like t2TBB) others use a weird hasExtraSrcRegAllocReq thing that will either need to be removed or the asmmatcher will need to be taught about it (someday). llvm-svn: 118119
-
- Nov 01, 2010
-
-
Jim Grosbach authored
patterns as such llvm-svn: 117923
-
- Oct 31, 2010
-
-
Chris Lattner authored
and make it a hard error for instructions to not have an asm string. These instructions should be marked isCodeGenOnly. llvm-svn: 117861
-
Chris Lattner authored
got a dulicated line). llvm-svn: 117860
-
Chris Lattner authored
llvm-svn: 117859
-
Chris Lattner authored
Instead of silently ignoring these instructions, emit a hard error and force the target author to either refactor the target or mark the instruction 'isCodeGenOnly'. Mark a few instructions in ARM and MBlaze as isCodeGenOnly the are doing this. llvm-svn: 117858
-
- Oct 30, 2010
-
-
Bob Wilson authored
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
-
Jim Grosbach authored
llvm-svn: 117742
-
- Oct 28, 2010
-
-
Evan Cheng authored
llvm-svn: 117531
-
Evan Cheng authored
llvm-svn: 117520
-
Evan Cheng authored
- For now, loads of [r, r] addressing mode is the same as the [r, r lsl/lsr/asr #] variants. ARMBaseInstrInfo::getOperandLatency() should identify the former case and reduce the output latency by 1. - Also identify [r, r << 2] case. This special form of shifter addressing mode is "free". llvm-svn: 117519
-
- Oct 25, 2010
-
-
Jim Grosbach authored
llvm-svn: 117291
-
- Oct 15, 2010
-
-
Bob Wilson authored
llvm-svn: 116566
-
- Oct 14, 2010
-
-
Jim Grosbach authored
pseudonym. llvm-svn: 116512
-
Jim Grosbach authored
llvm-svn: 116451
-
- Oct 07, 2010
-
-
Jim Grosbach authored
llvm-svn: 115890
-
Jim Grosbach authored
llvm-svn: 115853
-
- Oct 06, 2010
-
-
Evan Cheng authored
allow target to correctly compute latency for cases where static scheduling itineraries isn't sufficient. e.g. variable_ops instructions such as ARM::ldm. This also allows target without scheduling itineraries to compute operand latencies. e.g. X86 can return (approximated) latencies for high latency instructions such as division. - Compute operand latencies for those defined by load multiple instructions, e.g. ldm and those used by store multiple instructions, e.g. stm. llvm-svn: 115755
-
- Oct 02, 2010
-
-
Jim Grosbach authored
llvm-svn: 115373
-
- Sep 30, 2010
-
-
Jim Grosbach authored
llvm-svn: 115160
-
Jim Grosbach authored
Now that the MC lowering handles the expansion of the pseudos, kill the horrible blobs of text. llvm-svn: 115130
-
Evan Cheng authored
1. Cortex-a9 8-bit and 16-bit loads / stores AGU cycles are 1 cycle longer than 32-bit ones. 2. Cortex-a9 is out-of-order so model all read cycles as cycle 1. 3. Lots of other random fixes for A8 and A9. llvm-svn: 115121
-
Evan Cheng authored
pipeline forwarding path. llvm-svn: 115098
-
- Sep 29, 2010
-
-
Evan Cheng authored
llvm-svn: 115010
-
Evan Cheng authored
Assign bitwise binary instructions different itinerary classes from ALU instructions such as add / sub. llvm-svn: 115008
-
- Sep 25, 2010
-
-
Evan Cheng authored
llvm-svn: 114768
-
Evan Cheng authored
Fix scheduling itinerary for pseudo mov immediate instructions which expand into two real instructions. llvm-svn: 114766
-