| Commit message (Collapse) | Author | Age | Files | Lines | |
|---|---|---|---|---|---|
| * | LBRX no longer has an explicit SrcValueSDNode operand, so the type | Dan Gohman | 2009-09-27 | 1 | -1/+1 |
| | | | | | | | | operand is now at index 2, rather than 3. This fixes the "Invalid child # of SDNode!" failures on PowerPC. llvm-svn: 82942 | ||||
| * | simplify some code. | Chris Lattner | 2009-09-27 | 1 | -2/+2 |
| | | | | | llvm-svn: 82936 | ||||
| * | The bitcast case is not needed here: instcombine turns icmp(bitcast(x), ↵ | Chris Lattner | 2009-09-27 | 1 | -24/+7 |
| | | | | | | | null) -> icmp(x, null) already. llvm-svn: 82935 | ||||
| * | calls are already unmovable, malloc doesn't need a special case. | Chris Lattner | 2009-09-27 | 1 | -2/+1 |
| | | | | | llvm-svn: 82933 | ||||
| * | calls to external functions are already marked overdefined, special casing | Chris Lattner | 2009-09-27 | 1 | -5/+1 |
| | | | | | | | malloc isn't needed. llvm-svn: 82932 | ||||
| * | calls are already handled, malloc doesn't need a special case. | Chris Lattner | 2009-09-27 | 1 | -3/+1 |
| | | | | | llvm-svn: 82931 | ||||
| * | Round out the API for the new optimization flags. | Nick Lewycky | 2009-09-27 | 1 | -0/+16 |
| | | | | | llvm-svn: 82930 | ||||
| * | calls are rejected above, no need to special case malloc here. | Chris Lattner | 2009-09-27 | 1 | -3/+2 |
| | | | | | llvm-svn: 82929 | ||||
| * | remove special handling of bitcast(malloc), it will be handled | Chris Lattner | 2009-09-27 | 1 | -5/+4 |
| | | | | | | | when the loop inspects the bitcast operand. llvm-svn: 82928 | ||||
| * | unlike the malloc instruction, "malloc" calls do not claim to be readonly, ↵ | Chris Lattner | 2009-09-27 | 1 | -1/+1 |
| | | | | | | | just nounwind. llvm-svn: 82927 | ||||
| * | allow pushing icmps through phis with multiple uses and across critical edges. | Chris Lattner | 2009-09-27 | 1 | -8/+23 |
| | | | | | | | These are important to push up to encourage jump threading. This shrinks 176.gcc a bit. llvm-svn: 82923 | ||||
| * | Enhance the previous fix for PR4895 to allow more values than just | Chris Lattner | 2009-09-27 | 1 | -13/+26 |
| | | | | | | | | simple constants for the true/false value of the select. We now do phi translation etc. This really fixes PR4895 :) llvm-svn: 82917 | ||||
| * | implement PR4895, by making FoldOpIntoPhi handle select conditions | Chris Lattner | 2009-09-27 | 1 | -11/+42 |
| | | | | | | | | | | | that are phi nodes. Also tighten up FoldOpIntoPhi to treat constantexpr operands to phis just like other variables, avoiding moving constantexpr computations around. Patch by Daniel Dunbar. llvm-svn: 82913 | ||||
| * | Use explicit structs instead of std::pair to map callee saved regs to spill ↵ | Tilmann Scheller | 2009-09-27 | 2 | -158/+158 |
| | | | | | | | slots. llvm-svn: 82909 | ||||
| * | Delete a bogus comment. | Dan Gohman | 2009-09-27 | 1 | -1/+0 |
| | | | | | llvm-svn: 82908 | ||||
| * | Fix SCEVExpander's canonical addrec expansion code to work on loops that | Dan Gohman | 2009-09-27 | 1 | -19/+12 |
| | | | | | | | | | aren't in canonical loop-simplify form, since it doesn't itself depend on LoopSimplify. This means handling loops without preheaders and loops with multiple backedges. llvm-svn: 82905 | ||||
| * | Grab an LLVM Context from an instruction that exists rather than one | Dan Gohman | 2009-09-27 | 1 | -1/+1 |
| | | | | | | | that is deleted in some situations. This fixes a use-after-free. llvm-svn: 82903 | ||||
| * | Tell ScalarEvolution to forget everything it knows about a loop before | Dan Gohman | 2009-09-27 | 1 | -0/+5 |
| | | | | | | | rotating the loop, since loop rotation is a very significant change. llvm-svn: 82901 | ||||
| * | Micro-optimize DerivedType::dropAllTypeUses. | Dan Gohman | 2009-09-27 | 1 | -1/+2 |
| | | | | | llvm-svn: 82900 | ||||
| * | Instead of testing whether an instruction dominates the loop preheader, | Dan Gohman | 2009-09-27 | 1 | -3/+3 |
| | | | | | | | | | | test whether it properly dominates the loop header. This is equivalent when the loop has a preheader, and has the advantage of working when the loop doesn't have a preheader. Since IVUsers doesn't Require LoopSimplify, the loop isn't guaranteed to have a preheader. llvm-svn: 82899 | ||||
| * | Add a properlyDominates member function to ScalarEvolution. | Dan Gohman | 2009-09-27 | 1 | -0/+22 |
| | | | | | llvm-svn: 82898 | ||||
| * | Remove a redundant #include. | Dan Gohman | 2009-09-27 | 1 | -1/+0 |
| | | | | | llvm-svn: 82897 | ||||
| * | Avoid using mutex locks if not in multithreaded mode by using a SmartScopedMutex | Torok Edwin | 2009-09-27 | 1 | -2/+2 |
| | | | | | | | in RegisterStatistic. llvm-svn: 82896 | ||||
| * | Enable pre-regalloc load / store multiple pass for Thumb2. | Evan Cheng | 2009-09-27 | 3 | -67/+102 |
| | | | | | llvm-svn: 82893 | ||||
| * | Remove dead code from this function and optimize. Update its corresponding | Nick Lewycky | 2009-09-27 | 1 | -19/+5 |
| | | | | | | | LangRef entry too. llvm-svn: 82890 | ||||
| * | Instruction::clone does not need to take an LLVMContext&. Remove that and | Nick Lewycky | 2009-09-27 | 13 | -70/+61 |
| | | | | | | | update all the callers. llvm-svn: 82889 | ||||
| * | remove support for "NoSub" from regex. It seems like a minor optimization | Chris Lattner | 2009-09-26 | 1 | -15/+12 |
| | | | | | | | and makes the API more annoying. Add a Regex::getNumMatches() method. llvm-svn: 82877 | ||||
| * | Fix SimplifyLibCalls to transfer attributes from callees rather than | Dan Gohman | 2009-09-26 | 1 | -4/+7 |
| | | | | | | | | calls, since direct calls don't always reflect the attributes of their callees. llvm-svn: 82867 | ||||
| * | Fix a case where ScalarEvolution was expanding pointer arithmetic | Dan Gohman | 2009-09-26 | 1 | -3/+20 |
| | | | | | | | to inttoptr/ptrtoint unnecessarily. llvm-svn: 82864 | ||||
| * | For the NSWSub support in the builder to actually be useable, | Duncan Sands | 2009-09-26 | 1 | -0/+5 |
| | | | | | | | | there need to be corresponding changes to the constant folders, done in this patch. llvm-svn: 82862 | ||||
| * | Convert comparisons like (x == infinity) to (x >= infinity) on targets | Dan Gohman | 2009-09-26 | 1 | -0/+37 |
| | | | | | | | where FCMP_OEQ is not legal and FCMP_OGE is, such as x86. llvm-svn: 82861 | ||||
| * | Really remove this option. | Evan Cheng | 2009-09-26 | 1 | -3/+0 |
| | | | | | llvm-svn: 82838 | ||||
| * | Remove a couple of unused command line options. | Evan Cheng | 2009-09-26 | 1 | -7/+3 |
| | | | | | llvm-svn: 82837 | ||||
| * | Add comment. | Evan Cheng | 2009-09-26 | 1 | -0/+1 |
| | | | | | llvm-svn: 82836 | ||||
| * | Don't hoist or sink instructions with physreg uses if the physreg is | Dan Gohman | 2009-09-26 | 2 | -6/+24 |
| | | | | | | | | allocatable. Even if it doesn't appear to have any defs, it may latter on after register allocation. llvm-svn: 82834 | ||||
| * | Unbreak MachineLICM for instructions that reference RIP on x86-64 too. | Dan Gohman | 2009-09-25 | 1 | -2/+21 |
| | | | | | llvm-svn: 82825 | ||||
| * | Rename ConstantFP's getInf to getInfinity. | Dan Gohman | 2009-09-25 | 2 | -3/+3 |
| | | | | | llvm-svn: 82823 | ||||
| * | Move MachineMemOperand::getAlignment out of line, to avoid needing | Dan Gohman | 2009-09-25 | 1 | -0/+6 |
| | | | | | | | MathExtras.h in MachineMemOperand.h. llvm-svn: 82822 | ||||
| * | Remove unused variable. | Daniel Dunbar | 2009-09-25 | 1 | -2/+0 |
| | | | | | llvm-svn: 82821 | ||||
| * | Transform pow(x, 0.5) to (x == -inf ? inf : fabs(sqrt(x))), which is | Dan Gohman | 2009-09-25 | 1 | -15/+19 |
| | | | | | | | typically faster then doing a general pow. llvm-svn: 82819 | ||||
| * | Add a ConstantFP::getInf utility function for creating infinity ConstantFPs. | Dan Gohman | 2009-09-25 | 1 | -0/+6 |
| | | | | | llvm-svn: 82818 | ||||
| * | Fix MachineSink to be able to sink instructions that use physical registers | Dan Gohman | 2009-09-25 | 1 | -1/+14 |
| | | | | | | | | | which have no defs anywhere in the function. In particular, this fixes sinking of instructions that reference RIP on x86-64, which is currently being modeled as a register. llvm-svn: 82815 | ||||
| * | Regenerate | Anton Korobeynikov | 2009-09-25 | 1 | -4272/+4272 |
| | | | | | llvm-svn: 82814 | ||||
| * | Simplify a few more uses of reg_iterator. | Dan Gohman | 2009-09-25 | 3 | -12/+8 |
| | | | | | llvm-svn: 82812 | ||||
| * | Simplify this code by using use_iterator instead of reg_iterator | Dan Gohman | 2009-09-25 | 1 | -4/+2 |
| | | | | | | | and skipping the defs. llvm-svn: 82811 | ||||
| * | Code clean up and prepare for Thumb2 support. No functionality changes. | Evan Cheng | 2009-09-25 | 1 | -21/+49 |
| | | | | | llvm-svn: 82805 | ||||
| * | Flip -disable-post-RA-scheduler to -post-RA-scheduler. | Evan Cheng | 2009-09-25 | 1 | -5/+7 |
| | | | | | llvm-svn: 82803 | ||||
| * | Handle sqrt in CannotBeNegativeZero. absf and absl | Dale Johannesen | 2009-09-25 | 1 | -3/+7 |
| | | | | | | | appear to be misspellings, removed in favor of fabs*. llvm-svn: 82796 | ||||
| * | Improve MachineMemOperand handling. | Dan Gohman | 2009-09-25 | 21 | -410/+543 |
| | | | | | | | | | | | | | | | | | | | | | | - Allocate MachineMemOperands and MachineMemOperand lists in MachineFunctions. This eliminates MachineInstr's std::list member and allows the data to be created by isel and live for the remainder of codegen, avoiding a lot of copying and unnecessary translation. This also shrinks MemSDNode. - Delete MemOperandSDNode. Introduce MachineSDNode which has dedicated fields for MachineMemOperands. - Change MemSDNode to have a MachineMemOperand member instead of its own fields with the same information. This introduces some redundancy, but it's more consistent with what MachineInstr will eventually want. - Ignore alignment when searching for redundant loads for CSE, but remember the greatest alignment. Target-specific code which previously used MemOperandSDNodes with generic SDNodes now use MemIntrinsicSDNodes, with opcodes in a designated range so that the SelectionDAG framework knows that MachineMemOperand information is available. llvm-svn: 82794 | ||||
| * | Rename getTargetNode to getMachineNode, for consistency with the | Dan Gohman | 2009-09-25 | 15 | -423/+427 |
| | | | | | | | | | naming scheme used in SelectionDAG, where there are multiple kinds of "target" nodes, but "machine" nodes are nodes which represent a MachineInstr. llvm-svn: 82790 | ||||

