- 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
-
- Jun 23, 2009
-
-
Bob Wilson authored
This is still a work in progress but most of the NEON instruction set is supported. llvm-svn: 73919
-
- Jun 16, 2009
-
-
Anton Korobeynikov authored
Dispatch C calling conv. to one of these conventions based on target triple and subtarget features. llvm-svn: 73530
-
- May 20, 2009
-
-
Bob Wilson authored
llvm-svn: 72172
-
- May 14, 2009
-
-
Jim Grosbach authored
llvm.eh.sjlj.* for better clarity as to their purpose and scope. Add a description of llvm.eh.sjlj.setjmp to ExceptionHandling.html. (llvm.eh.sjlj.longjmp documentation coming when that implementation is added). llvm-svn: 71758
-
Jim Grosbach authored
llvm-svn: 71735
-
- May 13, 2009
-
-
Jim Grosbach authored
a supporting preliminary patch for GCC-compatible SjLJ exception handling. Note that these intrinsics are not designed to be invoked directly by the user, but rather used by the front-end as target hooks for exception handling. llvm-svn: 71610
-
- Apr 17, 2009
-
-
Bob Wilson authored
punctuation. No functional changes. llvm-svn: 69378
-
Bob Wilson authored
for ARM. Patch by Sandeep Patel. llvm-svn: 69371
-
- Apr 01, 2009
-
-
Bob Wilson authored
assembly. llvm-svn: 68218
-
- Feb 07, 2009
-
-
Dan Gohman authored
ScheduleDAG's TLI member to use const. llvm-svn: 64018
-
- Feb 03, 2009
-
-
Dale Johannesen authored
have it yet. More coming. llvm-svn: 63673
-
- Jan 15, 2009
-
-
Dan Gohman authored
llvm-svn: 62259
-
- Dec 01, 2008
-
-
Duncan Sands authored
ReplaceNodeResults: rather than returning a node which must have the same number of results as the original node (which means mucking around with MERGE_VALUES, and which is also easy to get wrong since SelectionDAG folding may mean you don't get the node you expect), return the results in a vector. llvm-svn: 60348
-
- Sep 23, 2008
-
-
Dan Gohman authored
instruction opcodes are now numbered. No functionality change. llvm-svn: 56497
-
- Jul 27, 2008
-
-
Dan Gohman authored
llvm-svn: 54128
-
- Jul 04, 2008
-
-
Duncan Sands authored
hook for each way in which a result type can be legalized (promotion, expansion, softening etc), just use one: ReplaceNodeResults, which returns a node with exactly the same result types as the node passed to it, but presumably with a bunch of custom code behind the scenes. No change if the new LegalizeTypes infrastructure is not turned on. llvm-svn: 53137
-