summaryrefslogtreecommitdiffstats
path: root/llvm/lib
Commit message (Collapse)AuthorAgeFilesLines
* previous patch was a little too tricky for its own good. Don't try toJim Grosbach2010-09-031-8/+7
| | | | | | | | overload UserInInstr. Explicitly check Allocatable. The early exit in the condition will mean the performance impact of the extra test should be minimal. llvm-svn: 113016
* Remove the rest of the nonexistent 64-bit AVX instructions.Dale Johannesen2010-09-031-79/+76
| | | | | | Bruno, please review. llvm-svn: 113014
* Reapply last harmless part of r112934, the pattern fragment to match X86UnpcklpdBruno Cardoso Lopes2010-09-031-0/+7
| | | | llvm-svn: 113009
* Reintroduce a simple function refactoring done in r112934, also without any ↵Bruno Cardoso Lopes2010-09-031-10/+12
| | | | | | functionality changes llvm-svn: 113008
* Reapply piecies of r112942 and r112934 which don't doBruno Cardoso Lopes2010-09-031-0/+36
| | | | | | functional changes llvm-svn: 113007
* Reapply Fix commentBruno Cardoso Lopes2010-09-031-3/+3
| | | | llvm-svn: 113006
* Revert r112934, "- Use specific nodes to match unpckl masks.", which introducedDaniel Dunbar2010-09-032-133/+16
| | | | | | | some infinite loop and select failures. - Apologies for eager reverting, but its branch day. llvm-svn: 113000
* Revert r112938 "Fix comment", which depends on r112934, which introduced someDaniel Dunbar2010-09-031-3/+3
| | | | | | infinite loop and select failures. llvm-svn: 112999
* Revert r112942, "Use punpckh and unpckh family of nodes instead of using unpckhDaniel Dunbar2010-09-031-23/+3
| | | | | | | mask pattern fragment", which depends on r112934, which introduced some infinite loop and select failures. llvm-svn: 112998
* Add a missing check when legalizing a vector extending load. This doesn'tBob Wilson2010-09-031-3/+5
| | | | | | | solve the root problem, but it corrects the bug in the code I added to support legalizing in the case where the non-extended type is also legal. llvm-svn: 112997
* Get rid of "passing signed into unsigned parameter" warning on PPC.Bill Wendling2010-09-031-1/+1
| | | | llvm-svn: 112995
* Add support for simplifying a load from a computed value to a load from a ↵Owen Anderson2010-09-032-8/+45
| | | | | | | | global when it is provable that they're equivalent. This fixes PR4855. llvm-svn: 112994
* Re-apply r112883:Jim Grosbach2010-09-033-26/+95
| | | | | | | | | | | | | | "For ARM stack frames that utilize variable sized objects and have either large local stack areas or require dynamic stack realignment, allocate a base register via which to access the local frame. This allows efficient access to frame indices not accessible via the FP (either due to being out of range or due to dynamic realignment) or the SP (due to variable sized object allocation). In particular, this greatly improves efficiency of access to spill slots in Thumb functions which contain VLAs." r112986 fixed a latent bug exposed by the above. llvm-svn: 112989
* VirtRegRewriter checks for early clobbers before it reuses an available stackJakob Stoklund Olesen2010-09-031-5/+7
| | | | | | | | | | | | slot. Teach it to also check for early clobbered aliases, and early clobber operands following the current operand. This fixes the miscompilation in PR8044 where EC registers eax and ecx were being used for inputs. llvm-svn: 112988
* Check the local frame alignment for determining whether dynamic stackJim Grosbach2010-09-031-1/+1
| | | | | | | | | alignment should be performed. Otherwise dynamic realignment may trigger when the register allocator has already used the frame pointer as a general purpose register. That is, we need to make sure that the list of reserved registers doesn't change after register allocation. llvm-svn: 112986
* Finish converting the rest of the NEON VLD instructions to use pseudo-Bob Wilson2010-09-034-154/+149
| | | | | | | | | instructions prior to regalloc. Since it's getting a little close to the 2.8 branch deadline, I'll have to leave the rest of the instructions handled by the NEONPreAllocPass for now, but I didn't want to leave half of the VLD instructions converted and the other half not. llvm-svn: 112983
* Revert "For ARM stack frames that utilize variable sized objects and have ↵Daniel Dunbar2010-09-033-95/+26
| | | | | | | | either", it is breaking oggenc with Clang for ARMv6. This reverts commit 8d6e29cfda270be483abf638850311670829ee65. llvm-svn: 112962
* Zap dead code.Benjamin Kramer2010-09-032-13/+0
| | | | llvm-svn: 112955
* Reapply commit 112702 which was speculatively reverted by echristo.Duncan Sands2010-09-031-82/+80
| | | | | | | | | | Original commit message: Use the SSAUpdator to turn calls to eh.exception that are not in a landing pad into uses of registers rather than loads from a stack slot. Doesn't touch the 'orrible hack code - Bill needs to persuade me harder :) llvm-svn: 112952
* AVX doesn't support mm operations neither its instrinsics.Bruno Cardoso Lopes2010-09-031-32/+32
| | | | | | | The AVX versions of PALIGN and PABS* should only exist for 128-bit. Remove the unnecessary stuff. llvm-svn: 112944
* Use punpckh and unpckh family of nodes instead of using unpckh mask pattern ↵Bruno Cardoso Lopes2010-09-031-3/+23
| | | | | | fragment llvm-svn: 112942
* Replace NEON vabdl, vaba, and vabal intrinsics with combinations of theBob Wilson2010-09-033-45/+161
| | | | | | | | vabd intrinsic and add and/or zext operations. In the case of vaba, this also avoids the need for a DAG combine pattern to combine vabd with add. Update tests. Auto-upgrade the old intrinsics. llvm-svn: 112941
* Fix commentBruno Cardoso Lopes2010-09-031-3/+3
| | | | llvm-svn: 112938
* - Use specific nodes to match unpckl masks.Bruno Cardoso Lopes2010-09-032-16/+133
| | | | | | | | | - Teach getShuffleScalarElt how to handle more target specific nodes, so the DAGCombine can make use of it. - Add another hack to avoid the node update problem during legalization. More description on the comments llvm-svn: 112934
* Simple branch instruction support.Eric Christopher2010-09-031-0/+23
| | | | llvm-svn: 112923
* Don't call Predicate_* from X86 target.Jakob Stoklund Olesen2010-09-033-16/+21
| | | | llvm-svn: 112921
* Remove Predicate_* calls from MBlaze and XCoreJakob Stoklund Olesen2010-09-033-18/+17
| | | | llvm-svn: 112920
* Remove Predicate_* calls from MipsJakob Stoklund Olesen2010-09-031-2/+3
| | | | llvm-svn: 112919
* Add basic support for materializing constants (including fp) andEric Christopher2010-09-021-3/+40
| | | | | | stores. llvm-svn: 112912
* lets get crazy and name the header file the exact class name,Chris Lattner2010-09-021-1/+1
| | | | | | not a scrunched version of it. llvm-svn: 112904
* Properly emit __chkstk call instead of __alloca on non-mingw windows targets.Anton Korobeynikov2010-09-022-8/+21
| | | | | | Patch by Cameron Esfahani! llvm-svn: 112902
* stop forcing a noop AssemblyAnnotationWriter to silence #usesChris Lattner2010-09-021-5/+1
| | | | | | comments, these don't happen anymore. llvm-svn: 112901
* There is no need to use .set here.Devang Patel2010-09-021-8/+1
| | | | | | Thanks Chris! llvm-svn: 112900
* reapply 112894:Chris Lattner2010-09-021-12/+4
| | | | | | | | | | | | | | | | Remove #uses comments from functions: they we're padded out to column 50 and were potentially confusing for externally visible functions. going further, remove the "<i8**> [#uses=3]" comments entirely. They add a lot of noise, confuse people about what the IR is, and don't add any particular value. When the types are long it makes it really really hard to read IR. If someone is interested in this sort of thing, the right way to do this is to implement an AsmAnnotationWriter that produces the same output, and add a flag to llvm-dis (only) to produce this output. llvm-svn: 112899
* Move insertps mask decoding to header fileBruno Cardoso Lopes2010-09-022-28/+24
| | | | llvm-svn: 112896
* revert patch, need to update clang tests tooChris Lattner2010-09-021-4/+12
| | | | llvm-svn: 112895
* Remove #uses comments from functions: they we're padded out to column 50Chris Lattner2010-09-021-12/+4
| | | | | | | | | | | | | | | and were potentially confusing for externally visible functions. going further, remove the "<i8**> [#uses=3]" comments entirely. They add a lot of noise, confuse people about what the IR is, and don't add any particular value. When the types are long it makes it really really hard to read IR. If someone is interested in this sort of thing, the right way to do this is to implement an AsmAnnotationWriter that produces the same output, and add a flag to llvm-dis (only) to produce this output. llvm-svn: 112894
* Use the FindProgramByName fallback only with known absolute paths.Dan Gohman2010-09-021-4/+10
| | | | | | | | I wasn't able to convince myself that all GetMainExecutable implementations always return absolute paths; this prevents unexpected behavior in case they ever don't. llvm-svn: 112888
* Revert win64 changes. They seem to be incompleteAnton Korobeynikov2010-09-022-11/+7
| | | | llvm-svn: 112885
* For ARM stack frames that utilize variable sized objects and have eitherJim Grosbach2010-09-023-26/+95
| | | | | | | | | | | | | | | large local stack areas or require dynamic stack realignment, allocate a base register via which to access the local frame. This allows efficient access to frame indices not accessible via the FP (either due to being out of range or due to dynamic realignment) or the SP (due to variable sized object allocation). In particular, this greatly improves efficiency of access to spill slots in Thumb functions which contain VLAs. rdar://7352504 rdar://8374540 rdar://8355680 llvm-svn: 112883
* fix more AST updating bugs, correcting miscompilation in PR8041Chris Lattner2010-09-021-2/+4
| | | | llvm-svn: 112878
* Remove incorrect and poorly tested code for trying to reason about values on ↵Owen Anderson2010-09-021-16/+2
| | | | | | | | default edges of switches. Just return the conservatively correct answer. llvm-svn: 112876
* Properly allocate win64 shadow reg area.Anton Korobeynikov2010-09-022-7/+11
| | | | | | Patch by Jan Sjodin! llvm-svn: 112875
* After some discussion with djg, teach SmallVector to grow from a zeroJohn McCall2010-09-021-1/+1
| | | | | | | capacity and remove the workaround in SmallVector<T,0>. There are some theoretical benefits to a N->2N+1 growth policy anyway. llvm-svn: 112870
* Move decoding of insertps back to avoid unused warnings in x86 isel ↵Bruno Cardoso Lopes2010-09-022-30/+44
| | | | | | lowering, and fix movlhps/movhlps to decode 4 elements shuffles llvm-svn: 112869
* Detect undef value early and save unnecessary NodeMap query.Devang Patel2010-09-021-0/+11
| | | | llvm-svn: 112864
* Don't narrow the load and store in a load+twiddle+store sequence unlessDan Gohman2010-09-022-1/+47
| | | | | | | | | | there are clearly no stores between the load and the store. This fixes this miscompile reported as PR7833. This breaks the test/CodeGen/X86/narrow_op-2.ll optimization, which is safe, but awkward to prove safe. Move it to X86's README.txt. llvm-svn: 112861
* Tidy up.Devang Patel2010-09-021-11/+9
| | | | llvm-svn: 112858
* trailing whitespaceJim Grosbach2010-09-021-6/+6
| | | | llvm-svn: 112852
* Add AsmParser support for the ELF .previous directive. Patch by Roman Divacky.Benjamin Kramer2010-09-025-1/+15
| | | | llvm-svn: 112849
OpenPOWER on IntegriCloud