- Dec 12, 2009
-
-
Jim Grosbach authored
just issues an error for the moment. The front end won't yet generate these intrinsics for ARM, so this is behind the scenes until complete. llvm-svn: 91200
-
- Dec 11, 2009
-
-
Jim Grosbach authored
llvm-svn: 91090
-
- Dec 10, 2009
-
-
Jim Grosbach authored
Add memory barrier intrinsic support for ARM. Moving towards adding the atomic operations intrinsics. llvm-svn: 91003
-
- Nov 12, 2009
-
-
Evan Cheng authored
llvm-svn: 86964
-
- Nov 11, 2009
-
-
Evan Cheng authored
Add TargetLowering::isLegalICmpImmediate. It tells LSR what immediate can be folded into target icmp instructions. llvm-svn: 86858
-
- Nov 09, 2009
-
-
Jim Grosbach authored
llvm-svn: 86494
-
- Oct 30, 2009
-
-
Bob Wilson authored
clang/test/CodeGen/indirect-goto.c runs! (unoptimized) llvm-svn: 85577
-
- Oct 28, 2009
-
-
Evan Cheng authored
llvm-svn: 85362
-
- Sep 23, 2009
-
-
Anton Korobeynikov authored
This fixes PR5031. Unfortunately, there is no small testcase :( llvm-svn: 82643
-
- Sep 18, 2009
-
-
Evan Cheng authored
Enhance EmitInstrWithCustomInserter() so target can specify CFG changes that sdisel will use to properly complete phi nodes. Not functionality change yet. llvm-svn: 82273
-
- Sep 02, 2009
-
-
Sandeep Patel authored
llvm-svn: 80773
-
- Aug 26, 2009
-
-
Bob Wilson authored
The instructions can be selected directly from the intrinsics. We will need to add some ARM-specific nodes for VLD/VST of 3 and 4 128-bit vectors, but those are not yet implemented. llvm-svn: 80117
-
- Aug 21, 2009
-
-
Bob Wilson authored
now using shuffles instead of intrinsics. llvm-svn: 79673
-
Anton Korobeynikov authored
llvm-svn: 79625
-
Anton Korobeynikov authored
llvm-svn: 79624
-
Anton Korobeynikov authored
Use masks not nodes for vector shuffle predicates. Provide set of 'legal' masks, so legalizer won't infinite cycle llvm-svn: 79619
-
- Aug 19, 2009
-
-
Bob Wilson authored
This is derived from a patch by Anton Korzh. I modified it to recognize the VEXT shuffles during legalization and lower them to a target-specific DAG node. llvm-svn: 79428
-
- Aug 15, 2009
-
-
Bill Wendling authored
llvm-svn: 79136
-
Bill Wendling authored
llvm-svn: 79135
-
Evan Cheng authored
support unaligned mem access only for certain types. (Should it be size instead?) ARM v7 supports unaligned access for i16 and i32, some v6 variants support it as well. llvm-svn: 79127
-
- Aug 14, 2009
-
-
Evan Cheng authored
llvm-svn: 79032
-
Bob Wilson authored
scalar_to_vector. Generate these VDUP nodes during legalization instead of trying to recognize the pattern during selection. llvm-svn: 78994
-
Bob Wilson authored
target-specific VDUPLANE nodes. This allows the subreg handling for the quad-register version to be done easily with Pats in the .td file, instead of with custom code in ARMISelDAGToDAG.cpp. llvm-svn: 78993
-
- Aug 13, 2009
-
-
Bob Wilson authored
to fix it tonight. llvm-svn: 78896
-
Bob Wilson authored
llvm-svn: 78852
-
Bob Wilson authored
llvm-svn: 78850
-
- Aug 11, 2009
-
-
Owen Anderson authored
llvm-svn: 78610
-
- Aug 07, 2009
-
-
Evan Cheng authored
It turns out most of the thumb2 instructions are not allowed to touch SP. The semantics of such instructions are unpredictable. We have just been lucky that tests have been passing. This patch takes pain to ensure all the PEI lowering code does the right thing when lowering frame indices, insert code to manipulate stack pointers, etc. It's also custom lowering dynamic stack alloc into pseudo instructions so we can insert the right instructions at scheduling time. This fixes PR4659 and PR4682. llvm-svn: 78361
-
- Aug 06, 2009
-
-
Bob Wilson authored
llvm-svn: 78330
-
- Aug 05, 2009
-
-
Anton Korobeynikov authored
Patch by Sandeep Patel! llvm-svn: 78225
-
Dan Gohman authored
Instead of awkwardly encoding calling-convention information with ISD::CALL, ISD::FORMAL_ARGUMENTS, ISD::RET, and ISD::ARG_FLAGS nodes, TargetLowering provides three virtual functions for targets to override: LowerFormalArguments, LowerCall, and LowerRet, which replace the custom lowering done on the special nodes. They provide the same information, but in a more immediately usable format. This also reworks much of the target-independent tail call logic. The decision of whether or not to perform a tail call is now cleanly split between target-independent portions, and the target dependent portion in IsEligibleForTailCallOptimization. This also synchronizes all in-tree targets, to help enable future refactoring and feature work. llvm-svn: 78142
-
- Aug 04, 2009
-
-
Bob Wilson authored
results to fixed registers. llvm-svn: 78025
-
- Jul 29, 2009
-
-
Evan Cheng authored
llvm-svn: 77422
-
- Jul 28, 2009
-
-
Evan Cheng authored
In thumb2 mode, add pc is unpredictable. Use add + mov pc instead (that is until more optimization goes in). llvm-svn: 77364
-
- Jul 26, 2009
-
-
Bob Wilson authored
Patch by Anton Korzh, with some modifications from me. llvm-svn: 77101
-
- Jul 25, 2009
-
-
Evan Cheng authored
Before: adr r12, #LJTI3_0_0 ldr pc, [r12, +r0, lsl #2] LJTI3_0_0: .long LBB3_24 .long LBB3_30 .long LBB3_31 .long LBB3_32 After: adr r12, #LJTI3_0_0 add pc, r12, +r0, lsl #2 LJTI3_0_0: b.w LBB3_24 b.w LBB3_30 b.w LBB3_31 b.w LBB3_32 This has several advantages. 1. This will make it easier to optimize this to a TBB / TBH instruction + (smaller) table. 2. This eliminate the need for ugly asm printer hack to force the address into thumb addresses (bit 0 is one). 3. Same codegen for pic and non-pic. 4. This eliminate the need to align the table so constantpool island pass won't have to over-estimate the size. Based on my calculation, the later is probably slightly faster as well since ldr pc with shifter address is very slow. That is, it should be a win as long as the HW implementation can do a reasonable job of branch predict the second branch. llvm-svn: 77024
-
- Jul 13, 2009
-
-
Bob Wilson authored
llvm-svn: 75479
-
- Jul 01, 2009
-
-
Bill Wendling authored
bytes and not bytes. llvm-svn: 74624
-
Bill Wendling authored
have the alignment be calculated up front, and have the back-ends obey whatever alignment is decided upon. This allows for future work that would allow for precise no-op placement and the like. llvm-svn: 74564
-
- Jun 29, 2009
-
-
David Goodwin authored
Rename ARMcmpNZ to ARMcmpZ and use it to represent comparisons that set only the Z flag (i.e. eq and ne). Make ARMcmpZ commutative. llvm-svn: 74423
-