- Nov 13, 2009
-
-
Bruno Cardoso Lopes authored
because the testcase is triggering one more bug. llvm-svn: 88674
-
Dale Johannesen authored
PPC is such a target; make it work. llvm-svn: 87060
-
Jim Grosbach authored
llvm-svn: 87056
-
Jim Grosbach authored
llvm-svn: 87054
-
David Greene authored
Fix a bootstrap failure. Provide special isLoadFromStackSlotPostFE and isStoreToStackSlotPostFE interfaces to explicitly request checking for post-frame ptr elimination operands. This uses a heuristic so it isn't reliable for correctness. llvm-svn: 87047
-
- Nov 12, 2009
-
-
David Greene authored
Make the MachineFunction argument of getFrameRegister const. This also fixes a build error. llvm-svn: 87027
-
David Greene authored
Add hasLoadFromStackSlot and hasStoreToStackSlot to return whether a machine instruction loads or stores from/to a stack slot. Unlike isLoadFromStackSlot and isStoreFromStackSlot, the instruction may be something other than a pure load/store (e.g. it may be an arithmetic operation with a memory operand). This helps AsmPrinter determine when to print a spill/reload comment. This is only a hint since we may not be able to figure this out in all cases. As such, it should not be relied upon for correctness. Implement for X86. Return false by default for other architectures. llvm-svn: 87026
-
David Greene authored
Add a bool flag to StackObjects telling whether they reference spill slots. The AsmPrinter will use this information to determine whether to print a spill/reload comment. Remove default argument values. It's too easy to pass a wrong argument value when multiple arguments have default values. Make everything explicit to trap bugs early. Update all targets to adhere to the new interfaces.. llvm-svn: 87022
-
Benjamin Kramer authored
StringsEqualNoCase (from StringExtras.h) to it. llvm-svn: 87020
-
Jim Grosbach authored
to directly follow the jump table. Move the layout changes to prior to any constant island handling. llvm-svn: 86999
-
Evan Cheng authored
llvm-svn: 86965
-
Evan Cheng authored
llvm-svn: 86964
-
Jim Grosbach authored
Revert 86857. It's causing consumer-typeset to fail, and there's a better way to do it forthcoming anyway. llvm-svn: 86945
-
Bruno Cardoso Lopes authored
llvm-svn: 86895
-
- Nov 11, 2009
-
-
Evan Cheng authored
Add TargetLowering::isLegalICmpImmediate. It tells LSR what immediate can be folded into target icmp instructions. llvm-svn: 86858
-
Jim Grosbach authored
llvm-svn: 86857
-
Dan Gohman authored
llvm-svn: 86851
-
Dan Gohman authored
llvm-svn: 86850
-
Chris Lattner authored
llvm-svn: 86848
-
Chris Lattner authored
llvm-svn: 86847
-
Jim Grosbach authored
The TBB and TBH instructions for Thumb2 are really handy for jump tables, but can only branch forward. To best take advantage of them, we'd like to adjust the basic blocks around a bit when reasonable. This patch puts basics in place to do that, with a super-simple algorithm for backwards jump table targets that creates a new branch after the jump table which branches backwards. Real heuristics for reordering blocks or other modifications rather than inserting branches will follow. llvm-svn: 86791
-
Daniel Dunbar authored
llvm-svn: 86769
-
Chris Lattner authored
llvm-svn: 86756
-
Chris Lattner authored
llvm-svn: 86754
-
- Nov 10, 2009
-
-
Dan Gohman authored
llvm-svn: 86732
-
Bill Wendling authored
generates a sequence similar to this: __Z4funci: LFB2: mflr r0 LCFI0: stmw r30,-8(r1) LCFI1: stw r0,8(r1) LCFI2: stwu r1,-80(r1) LCFI3: mr r30,r1 LCFI4: where LCFI3 and LCFI4 are used by the FDE to indicate what the FP, LR, and other things are. We generated something more like this: Leh_func_begin1: mflr r0 stw r31, 20(r1) stw r0, 8(r1) Llabel1: stwu r1, -80(r1) Llabel2: mr r31, r1 Note that we are missing the "mr" instruction. This patch makes it more like the GCC output. llvm-svn: 86729
-
Evan Cheng authored
[r0, #2 * 4] Now [r0, #8] This makes Thumb2 assembly more uniform and frankly the scale doesn't add much. llvm-svn: 86707
-
Evan Cheng authored
llvm-svn: 86706
-
Daniel Dunbar authored
- Force NDEBUG on in any Release build. This drops the compile time to ~100s from ~600s, in Release mode. - This may just be a temporary workaround, I don't know the true nature of the gcc-4.2 compile time performance problem. llvm-svn: 86695
-
Bruno Cardoso Lopes authored
llvm-svn: 86651
-
Jeffrey Yasskin authored
This patch forbids implicit conversion of DenseMap::const_iterator to DenseMap::iterator which was possible because DenseMapIterator inherited (publicly) from DenseMapConstIterator. Conversion the other way around is now allowed as one may expect. The template DenseMapConstIterator is removed and the template parameter IsConst which specifies whether the iterator is constant is added to DenseMapIterator. Actually IsConst parameter is not necessary since the constness can be determined from KeyT but this is not relevant to the fix and can be addressed later. Patch by Victor Zverovich! llvm-svn: 86636
-
David Goodwin authored
llvm-svn: 86634
-
David Goodwin authored
Allow targets to specify register classes whose member registers should not be renamed to break anti-dependencies. llvm-svn: 86628
-
Jim Grosbach authored
not necessary. llvm-svn: 86621
-
- Nov 09, 2009
-
-
Jim Grosbach authored
llvm-svn: 86604
-
Jim Grosbach authored
llvm-svn: 86602
-
Bill Wendling authored
llvm-svn: 86592
-
Bill Wendling authored
was generated. This caused code like this: ## The asm code for the function .section __TEXT,__const .align 2 lJTI11_0: LJTI11_0: .long LBB11_16 .long LBB11_4 .long LBB11_5 .long LBB11_6 .long LBB11_7 .long LBB11_8 .long LBB11_9 .long LBB11_10 .long LBB11_11 .long LBB11_12 .long LBB11_13 .long LBB11_14 Leh_func_end11: ## <---now in the wrong section! The `Leh_func_end11' would then end up in the wrong section, causing the resulting EH frame information to be wrong: __ZL11CheckRightsjPKcbRbRP6NSData.eh: .set Lset500eh,Leh_frame_end11-Leh_frame_begin11 .long Lset500eh ; Length of Frame Information Entry Leh_frame_begin11: .long Leh_frame_begin11-Leh_frame_common .long Leh_func_begin11-. .set Lset501eh,Leh_func_end11-Leh_func_begin11 .long Lset501eh ; FDE address range `Lset501eh' is now something huge instead of the real value. The X86 back-end generates the jump table after the EH information is emitted. Do the same here. llvm-svn: 86588
-
Jim Grosbach authored
llvm-svn: 86548
-
Bruno Cardoso Lopes authored
http://llvm.org/bugs/show_bug.cgi?id=5149 llvm-svn: 86543
-