- Apr 16, 2010
-
-
Johnny Chen authored
considered legal instructions. Refs: A8.6.51 LDC, LDC2 (immediate) -- page A8-107, A8.6.58 LDR (immediate, ARM) -- page A8-121, and A8.6.194 STR (immediate, ARM) -- page A8-395. llvm-svn: 101524
-
Gabor Greif authored
with a fix for self-hosting rotate CallInst operands, i.e. move callee to the back of the operand array the motivation for this patch are laid out in my mail to llvm-commits: more efficient access to operands and callee, faster callgraph-construction, smaller compiler binary llvm-svn: 101465
-
Evan Cheng authored
Adding support for dag combiner to promote operations for profit. This requires target specific queries. For example, x86 should promote i16 to i32 when it does not impact load folding. x86 support is off by default. It can be enabled with -promote-16bit. Work in progress. llvm-svn: 101448
-
Evan Cheng authored
llvm-svn: 101446
-
Gabor Greif authored
llvm-svn: 101434
-
Johnny Chen authored
am2offset. Modified the instruction table entry and added a new test case. llvm-svn: 101415
-
Evan Cheng authored
Use default lowering of DYNAMIC_STACKALLOC. As far as I can tell, ARM isle is doing the right thing and codegen looks correct for both Thumb and Thumb2. llvm-svn: 101410
-
- Apr 15, 2010
-
-
Gabor Greif authored
with a fix rotate CallInst operands, i.e. move callee to the back of the operand array the motivation for this patch are laid out in my mail to llvm-commits: more efficient access to operands and callee, faster callgraph-construction, smaller compiler binary llvm-svn: 101397
-
Evan Cheng authored
ARM SelectDYN_ALLOC should emit a copy from SP rather than referencing SP directly. In cases where there are two dyn_alloc in the same BB it would have caused the old SP value to be reused and badness ensues. rdar://7493908 llvm is generating poor code for dynamic alloca, I'll fix that later. llvm-svn: 101383
-
Johnny Chen authored
llvm-svn: 101382
-
Dan Gohman authored
llvm-svn: 101379
-
Dan Gohman authored
can't be static. llvm-svn: 101377
-
Dan Gohman authored
llvm-svn: 101376
-
Gabor Greif authored
llvm-svn: 101368
-
Gabor Greif authored
of the operand array the motivation for this patch are laid out in my mail to llvm-commits: more efficient access to operands and callee, faster callgraph-construction, smaller compiler binary llvm-svn: 101364
-
rdar://7860110Chris Lattner authored
a load/or/and/store sequence into a narrower store when it is safe. Daniel tells me that clang will start producing this sort of thing with bitfields, and this does trigger a few dozen times on 176.gcc produced by llvm-gcc even now. This compiles code like CodeGen/X86/2009-05-28-DAGCombineCrash.ll into: movl %eax, 36(%rdi) instead of: movl $4294967295, %eax ## imm = 0xFFFFFFFF andq 32(%rdi), %rax shlq $32, %rcx addq %rax, %rcx movq %rcx, 32(%rdi) and each of the testcases into a single store. Each of them used to compile into craziness like this: _test4: movl $65535, %eax ## imm = 0xFFFF andl (%rdi), %eax shll $16, %esi addl %eax, %esi movl %esi, (%rdi) ret llvm-svn: 101343
-
Dan Gohman authored
llvm-svn: 101342
-
Anders Carlsson authored
llvm-svn: 101335
-
Dan Gohman authored
llvm-svn: 101334
-
Eric Christopher authored
patterns to handle the lowering. llvm-svn: 101331
-
Johnny Chen authored
llvm-svn: 101329
-
Johnny Chen authored
function checks whether we have a valid submode for VLDM/VSTM (must be either "ia" or "db") before calling ARM_AM::getAM5Opc(AMSubMode, unsigned char). llvm-svn: 101306
-
Jim Grosbach authored
kernel linker happier when dealing with kexts. Radar 7805069 llvm-svn: 101303
-
Johnny Chen authored
Change the error msg to read "Encoding error: msb < lsb". llvm-svn: 101293
-
- Apr 14, 2010
-
-
Johnny Chen authored
was asserting because the (RegClass, RegNum) combination doesn't make sense from an encoding point of view. Since getRegisterEnum() is used all over the place, to change the code to check for encoding error after each call would not only bloat the code, but also make it less readable. An Err flag is added to the ARMBasicMCBuilder where a client can set a non-zero value to indicate some kind of error condition while building up the MCInst. ARMBasicMCBuilder::BuildIt() checks this flag and returns false if a non-zero value is detected. llvm-svn: 101290
-
Bob Wilson authored
does not have a legal type. The legalizer does not know how to handle those nodes. Radar 7854640. llvm-svn: 101282
-
Dan Gohman authored
llvm-svn: 101276
-
Dan Gohman authored
a bunch of stuff to support it. llvm-svn: 101273
-
Johnny Chen authored
involing getBFCInvMask() where lsb <= msb does not hold true, the disassembler just returns false, instead of assert, to indicate disassembly error. llvm-svn: 101205
-
Johnny Chen authored
instruction encoding is encountered, we just return a NULL ARMBasicMCBuilder instance and the client just returns false to indicate disassembly error. llvm-svn: 101201
-
Douglas Gregor authored
bit (we're not trying to build a shared library yet) and generating the X86GenEDInfo.inc and ARMGenEDInfo.inc files as necessary. llvm-svn: 101188
-
Bob Wilson authored
such that the entire second half is in memory. Radar 7855014. llvm-svn: 101181
-
- Apr 13, 2010
-
-
Sean Callanan authored
code. It used to #include the enhanced disassembly information for the targets it supported straight out of lib/Target/{X86,ARM,...} but now it uses a new interface provided by MCDisassembler, and (so far) implemented by X86 and ARM. Also removed hacky #define-controlled initialization of targets in edis. If clients only want edis to initialize a limited set of targets, they can set --enable-targets on the configure command line. llvm-svn: 101179
-
Johnny Chen authored
instead of 7, because we are only looking for even rotate amount. llvm-svn: 101172
-
Evan Cheng authored
Re-apply 101075 and fix it properly. Just reuse the debug info of the branch instruction being optimized. There is no need to --I which can deref off start of the BB. llvm-svn: 101162
-
Eric Christopher authored
in a nightly tester. llvm-svn: 101158
-
Dan Gohman authored
MachineBasicBlock::livein_iterator a const_iterator, because clients shouldn't ever be using the iterator interface to mutate the livein set. llvm-svn: 101147
-
Dan Gohman authored
llvm-svn: 101144
-
Bob Wilson authored
recognize all the valid rotated immediates. This fixes the disassembler issue and will also help codegen for some unusual constant values. llvm-svn: 101114
-
Chris Lattner authored
patch by Sylvere Teissier! llvm-svn: 101106
-