Commits

Show all
Author Commit Message Labels Comments Date
Dan Gohman
Simplify and generalize X86DAGToDAGISel::CanBeFoldedBy, and draw up some new ascii art to illustrate what it does. This change currently has no effect on generated code.
Tags
2 tags
Dan Gohman
Add a new MachineInstr-level DCE pass. It is very simple, and is intended to be used with fast-isel.
Bill Wendling
Add trampoline support to PPC. GCC simply calls the "__trampoline_setup" function with appropriate parameters. This allows us to support blocks on PPC.
Devang Patel
Fix cut-n-pasto.
Evan Cheng
When converting a CopyFromReg to a copy instruction, use the register class of its uses to determine the right destination register class of the copy. This is important for targets where a physical register may belong to multiple register classes.
Tags
2 tags
Devang Patel
Remove.
Devang Patel
Add -O1, -O2 and -O3 that matches llvm-gcc's -O1, -O2 and -O3 respectively.
Dan Gohman
Change SelectionDAG::getConstantPool to always set the alignment of the ConstantPoolSDNode, using the target's preferred alignment for the constant type. In LegalizeDAG, when performing loads from the constant pool, the ConstantPoolSDNode's alignment is used in the calls to getLoad and getExtLoad. This change prevents SelectionDAG::getLoad/getExtLoad from incorrectly choosing the ABI alignment for constant pool loads when Alignment == 0. The incorrect alignment is only a performance issue when ABI alignment does not equal preferred alignment (i.e.…
Bill Wendling
Reverting r56249. On further investigation, this functionality isn't needed. Apologies for the thrashing.
Dan Gohman
Include the alignment value when displaying ConstantPoolSDNodes.
Bill Wendling
- Change "ExternalSymbolSDNode" to "SymbolSDNode". - Add linkage to SymbolSDNode (default to external). - Change ISD::ExternalSymbol to ISD::Symbol. - Change ISD::TargetExternalSymbol to ISD::TargetSymbol These changes pave the way to allowing SymbolSDNodes with non-external linkage.
Dan Gohman
Fix these comments to reflect current reality. Surprisingly, MachineConstantPool::getConstantPoolIndex actually expects a log2-encoded alignment.
Dan Gohman
Finally re-apply r46959. This is made feasible by the combination of r56230, r56232, and r56246.
Dan Gohman
Improve instcombine's handling of integer min and max in two ways: - Recognize expressions like "x > -1 ? x : 0" as min/max and turn them into expressions like "x < 0 ? 0 : x", which is easily recognizable as a min/max operation. - Refrain from folding expression like "y/2 < 1" to "y < 2" when the comparison is being used as part of a min or max idiom, like "y/2 < 1 ? 1 : y/2". In that case, the division has another use, so folding doesn't eliminate it, and obfuscates the min/max, making it harder to recognize as a min/max operation. These benefit ScalarEvolution, CodeGen, and anything else that wants to recognize integer min and max.
Evan Cheng
AllocateRWXMemory -> AllocateRWX.
Dan Gohman
FCmpInst predicates UNO, ORD, FALSE, and TRUE are commutative.
Bill Wendling
Fix test to account for no more whitespace and that one of the matches is the "declare" statement.
Bill Wendling
Remove space that was forgotten.`
Dan Gohman
Don't take the time to CheckDAGForTailCallsAndFixThem when tail calls are not enabled. Instead just omit the tail call flag when calls are created.
Dan Gohman
Fix spacing in the grep line for this test, following the recent SCEV-whitespace changes.
Dan Gohman
Re-enables the new vector select in the bitcode reader, by modifying the bitcode reader/writer as follows: - add and use new bitcode FUNC_CODE_INST_VSELECT to handle the llvm select opcode using either i1 or [N x i1] as the selector. - retain old BITCODE FUNC_CODE_INST_SELECT in the bitcode reader to handle select on i1 for backwards compatibility with existing bitcode files. - re-enable the vector-select.ll test program. Also, rename the recently added bitcode opcode FUNC_CODE_INST_VCMP to FUNC_CODE_…
Dan Gohman
Teach ScalarEvolution to consider loop preheaders in the search for an if statement that guards a loop, to allow indvars to avoid smax operations in more situations.
Owen Anderson
Live intervals for live-in registers should begin at the beginning of a basic block, not at the first instruction. Also, their valno's should have an unknown def. This has no effect currently, but was causing issues when StrongPHIElimination was enabled.
Dan Gohman
Teach LSR to optimize away SMAX operations for tripcounts in common cases. See the comment above OptimizeSMax for the full story, and the testcase for an example. This cancels out a pessimization commonly attributed to indvars, and will allow us to lift some of the artificial throttles in indvars, rather than add new ones.
Devang Patel
Extract optimization pass selection code from llvm-gcc into a separate routine. This can be used by other stand alone tools, such as 'opt'.
bcardosolopes
Fixed Bug 2751 http://llvm.org/bugs/show_bug.cgi?id=2751 Abicall was enabled even when static code model was provided in the command line. The correct behavior is to disable abicall when static is specified.
Dan Gohman
Re-enable SelectionDAG CSE for calls. It matters in the case of libcalls, as in this testcase on ARM.
bcardosolopes
Added testcase for bswap allegrexel intrinsic
Duncan Sands
End of the GlobalsModRef experiment.
Dan Gohman
Update the LLVM polygen grammar for recent language changes: x86_ssecallcc, function notes, and some whitespace adjustments.
  1. Prev
  2. Next