summaryrefslogtreecommitdiffstats
path: root/llvm
Commit message (Collapse)AuthorAgeFilesLines
...
* SDTCisVT<0, isVoid> is not valid, reject it.Chris Lattner2010-03-281-0/+3
| | | | llvm-svn: 99744
* claiming to return other is pointless.Chris Lattner2010-03-281-4/+2
| | | | llvm-svn: 99743
* comply with the wishes of a fixme.Chris Lattner2010-03-281-3/+0
| | | | llvm-svn: 99742
* now that (parallel) is gone and a variety of bugs in targetsChris Lattner2010-03-281-8/+4
| | | | | | are cleaned up, we can remove an old fixme. llvm-svn: 99741
* add an optimized form of OPC_EmitMergeInputChains for the 1, 0 and Chris Lattner2010-03-283-0/+38
| | | | | | | 1, 1 cases which are by-far the most frequent. This shrinks the X86 isel table from 77014 -> 74657 bytes. llvm-svn: 99740
* don't add nodes to the now-dead nodes list multiple times, thisChris Lattner2010-03-281-2/+3
| | | | | | | can cause a crash on crazy situations in msp430 when morph-node-to is disabled. llvm-svn: 99739
* Improve systemz to model cmp and ucmp nodes as returningChris Lattner2010-03-282-43/+33
| | | | | | their flags correctly. llvm-svn: 99738
* the FPCmp node returns an i32.Chris Lattner2010-03-281-6/+8
| | | | llvm-svn: 99737
* fix some modelling problems exposed by a patch I'm working on. bsr/bsf/ptestChris Lattner2010-03-283-26/+21
| | | | | | nodes all have an EFLAGS result when made by isel lowering. llvm-svn: 99736
* don't add flag nodes with chain results to the NowDeadNodesChris Lattner2010-03-281-2/+3
| | | | | | list multiple times when MorphNodeTo can't be applied. llvm-svn: 99735
* Oops, r98447 dropped the reference to ForwardType in the wrong place inJeffrey Yasskin2010-03-281-5/+5
| | | | | | | | Type::destroy(), so it got skipped for FunctionTypes, StructTypes, and UnionTypes. This fixes the resulting leaks in test/Feature/opaquetypes.ll and test/Integer/opaquetypes_bt.ll. llvm-svn: 99732
* fix a long standing fixme, which required fixing a bunch of otherChris Lattner2010-03-271-25/+27
| | | | | | | | | | | | | issues to get here. We now trim the result type list of the CompleteMatch or MorphNodeTo operation to be the same size as the thing we're matching. this means that if you match (add GPR, GPR) with an instruction that produces a normal result and a flag that we now trim the result in tblgen instead of having to do it dynamically. This exposed a bunch of inconsistencies in result counting that happened to be getting lucky since the days of the old isel. llvm-svn: 99728
* fix CodeGenTarget::getRegisterVTs to not return the Chris Lattner2010-03-272-2/+7
| | | | | | | | same vt multiple times for a register. For example, ECX is in 5 different i32 reg classes, just return 1 i32 instead of 5. llvm-svn: 99727
* hoist some funky logic into CodeGenInstructionChris Lattner2010-03-274-17/+38
| | | | | | | | | from two places in CodeGenDAGPatterns.cpp, and use it in DAGISelMatcherGen.cpp instead of using an incorrect predicate that happened to get lucky on our current targets. llvm-svn: 99726
* continue pushing tblgen's support for nodes with multipleChris Lattner2010-03-272-40/+44
| | | | | | | | results forward. We can now handle an instruction that produces one implicit def and one result instead of one or the other when not at the root of the pattern. llvm-svn: 99725
* improve -debug-only=isel comments for cases when we don't enter aChris Lattner2010-03-271-4/+8
| | | | | | scope due to obviously false predicate. llvm-svn: 99723
* fix a bug in my recent patch that increased opcode size to 2 bytes:Chris Lattner2010-03-271-9/+13
| | | | | | | the index comments nested under OPC_SwitchOpcode were off by one. This fixes the comments. llvm-svn: 99722
* revert r99719 which is breaking the botz.Chris Lattner2010-03-271-18/+6
| | | | llvm-svn: 99721
* Make llvm-ld remove its output files in the event of an error.Dan Gohman2010-03-271-6/+18
| | | | llvm-svn: 99719
* Give FileRemover a default constructor to allow FileRemovers to be createdDan Gohman2010-03-271-0/+2
| | | | | | and initialized separately. llvm-svn: 99717
* No need to check the same condition twice.Dan Gohman2010-03-271-1/+1
| | | | llvm-svn: 99716
* Add a comment.Dan Gohman2010-03-271-0/+1
| | | | llvm-svn: 99715
* Remove an unnecessary #include.Dan Gohman2010-03-271-1/+0
| | | | llvm-svn: 99714
* Remove another memory leak from ABCD by using Edges by value instead ofJeffrey Yasskin2010-03-271-29/+21
| | | | | | | pointer. There was also a SmallPtrSet whose settiness wasn't being used, so I changed it to a SmallVector. llvm-svn: 99713
* In ABCD, change the non-null Bound*s to Bound&s.Jeffrey Yasskin2010-03-271-79/+74
| | | | llvm-svn: 99711
* Fix a memory leak in ABCD by giving ownership of Bound objects to theJeffrey Yasskin2010-03-271-68/+76
| | | | | | MemoizedResultChart. llvm-svn: 99710
* XFAIL a new tblgen test for memory leak checking.Jeffrey Yasskin2010-03-271-0/+1
| | | | llvm-svn: 99707
* Avoid leaking the memory allocated for GlobalVariables in the interpreter, byJeffrey Yasskin2010-03-271-3/+32
| | | | | | freeing that memory when the GV is destroyed. llvm-svn: 99706
* Fix indentation.Bob Wilson2010-03-271-34/+34
| | | | llvm-svn: 99705
* Add a format argument to the N3V and N3VX classes, removing the N3Vf class.Bob Wilson2010-03-272-198/+198
| | | | llvm-svn: 99704
* remove parallel support.Chris Lattner2010-03-273-41/+4
| | | | llvm-svn: 99703
* eliminate the last of the parallel's!Chris Lattner2010-03-272-173/+102
| | | | llvm-svn: 99700
* When we promote a load of an argument make sure to take the alignmentEric Christopher2010-03-271-1/+5
| | | | | | | of the previous load - it's usually important. For example, we don't want to blindly turn an unaligned load into an aligned one. llvm-svn: 99699
* Forgot the part where we handle the ".llvm.eh.catch.all.value".Bill Wendling2010-03-271-2/+11
| | | | llvm-svn: 99697
* Return if we changed anything or not.Bill Wendling2010-03-271-11/+9
| | | | llvm-svn: 99695
* If a selector has a call to ".llvm.eh.catch.all.value" that we haven'tBill Wendling2010-03-271-8/+38
| | | | | | converted, then use the initializer, since using the name itself won't work. llvm-svn: 99692
* Add NVMulSLFrm to represent "3-register multiply with scalar" operations and setJohnny Chen2010-03-272-122/+130
| | | | | | | | | | | | it as the format for the appropriate N3V*SL*<> classes. These instructions require special handling of the M:Vm field which encodes the restricted Dm and the lane index within Dm. Examples are A8.6.325 VMLA, VMLAL, VMLS, VMLSL (by scalar): vmlal.s32 q3, d2, d10[0] llvm-svn: 99690
* eliminate almost all the rest of the x86-32 parallels.Chris Lattner2010-03-271-157/+116
| | | | llvm-svn: 99686
* bump FIRST_TARGET_MEMORY_OPCODE back up, there is no reason to make it a ↵Chris Lattner2010-03-271-1/+1
| | | | | | tight bound anymore. llvm-svn: 99685
* Thumb2 storeFrom/LoadToStackSlot() need to handle tGPR regs directly, not passJim Grosbach2010-03-271-2/+2
| | | | | | | through to the generic version. The generic functions use STR/LDR, but T2 needs the t2STR/t2LDR instead so we get the addressing mode correct. llvm-svn: 99678
* improve portability to minix, patch by Chris Lattner2010-03-261-2/+2
| | | | | | Kees van Reeuwijk for PR6704 llvm-svn: 99677
* Remove the duplicate multiclass N3VSh_QHSD and use N3VInt_QHSD which is modifiedJohnny Chen2010-03-261-193/+154
| | | | | | | to now take a format argument. N3VDInt<> and N3VQInt<> are modified to take a format argument as well. llvm-svn: 99676
* If we mark clean-ups as clean-ups, then it could break when inlining through anBill Wendling2010-03-261-7/+215
| | | | | | | | | | | | | | | | | | | | | | | | | 'invoke' instruction. You will get a situation like this: bb: %ehptr = eh.exception() %sel = eh.selector(%ehptr, @per, 0); ... bb2: invoke _Unwind_Resume_or_Rethrow(%ehptr) %normal unwind to %lpad lpad: ... The unwinder will see the %sel call as a clean-up and, if it doesn't have a catch further up the call stack, it will skip running it. But there *is* another catch up the stack -- the catch for the %lpad. However, we can't see that. This is fixed in code-gen, where we detect this situation, and convert the "clean-up" selector call into a "catch-all" selector call. This gives us the correct semantics. llvm-svn: 99671
* Add NVExtFrm to represent NEON Vector Extract Instructions, that uses Inst{11-8}Johnny Chen2010-03-262-10/+11
| | | | | | | | | to encode the byte location of the extracted result in the concatenation of the operands, from the least significant end. Modify VEXTd and VEXTq classes to use the format. llvm-svn: 99659
* remove a constructor implementation that isn't declaredChris Lattner2010-03-261-6/+0
| | | | | | | | in the header. How can both clang and gcc accept this? PR6703 llvm-svn: 99658
* Add few missed libcalls and correct names for others.Anton Korobeynikov2010-03-262-4/+20
| | | | llvm-svn: 99656
* Add N3RegVShFrm to represent 3-Register Vector Shift Instructions, which do notJohnny Chen2010-03-262-23/+85
| | | | | | | | | | | | | | follow the N3RegFrm's operand order of D:Vd N:Vn M:Vm. The operand order of N3RegVShFrm is D:Vd M:Vm N:Vn (notice that M:Vm is the first src operand). Add a parent class N3Vf which requires passing a Format argument and which the N3V class is modified to inherit from. N3V class represents the "normal" 3-Register NEON Instructions with N3RegFrm. Also add a multiclass N3VSh_QHSD to represent clusters of NEON 3-Register Shift Instructions and replace 8 invocations with it. llvm-svn: 99655
* fix iterator nameGabor Greif2010-03-261-1/+1
| | | | llvm-svn: 99646
* Minor grammar and html fixes.Dan Gohman2010-03-261-3/+3
| | | | llvm-svn: 99644
* some more tweaksGabor Greif2010-03-261-4/+5
| | | | llvm-svn: 99643
OpenPOWER on IntegriCloud