aboutsummaryrefslogtreecommitdiff
path: root/lib
AgeCommit message (Collapse)Author
2005-08-19Mark some instructions as variable_ops, and PSEUDO_ALLOC as taking a GPR.Chris Lattner
I'm not convinced this is all of them, but I can't do much testing, because IA64 LLC crashes on big programs :( git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22892 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-19add a few missing casesChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22891 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-19Give ADJCALLSTACKDOWN/UP the correct operands.Chris Lattner
Give a whole bunch of other stuff variable operands, particularly FP. The FP stackifier is playing fast and loose with operands here, so we have to mark them all as variable. This will have to be fixed before we can dag->dag the X86 backend. The solution is for the pre-stackifier and post-stackifier instructions to all be disjoint. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22890 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-19ISD::OR, and it's accompanying SelectBitfieldInsertNate Begeman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22889 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-19The variable SAR's only take one operand tooChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22888 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-19Stop adding bogus operands to variable shifts on X86. These instructionsChris Lattner
only take one operand. The other comes implicitly in through CL. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22887 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-18Remove the X86 and PowerPC Simple instruction selectors; their time hasNate Begeman
passed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22886 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-18Add shifts.Nate Begeman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22884 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-18Fix operand numbers by marking variable arity nodes as such and by fixingChris Lattner
the operand lists of a few other nodes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22883 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-18MFLR doesn't take an operand, the LR register is implicitChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22882 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-18Add a new flagChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22881 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-18add a new -view-sched-dags option to view dags as they are sent to the ↵Chris Lattner
scheduler. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22878 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-18Move this to the emitterChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22877 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-18Implement the first chunk of a code emitter. This is sophisticated enough toChris Lattner
codegen: _empty: .LBB_empty_0: ; blr but can't do anything more (yet). :) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22876 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-18More optimal solution for loading constants.Jim Laskey
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22870 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-18After selecting the instructions for a basic block, emit the instructionsChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22869 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-18new file, obviously just a stubChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22868 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-18remove some unused stuffChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22866 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-18Fix int foo() { return 65535; } by using the top 16 bits of the constantNate Begeman
as the argument to LIS rather than the result of HA16(constant). The DAG->DAG ISel was already doing the right thing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22865 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-18Improve ISD::Constant codegen.Nate Begeman
Now for int foo() { return -1; } we generate: _foo: li r3, -1 blr instead of _foo: lis r2, -1 ori r3, r2, 65535 blr git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22864 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-18Enable critical edge splitting by defaultChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22863 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-18replace switch stmt with an assert, generate li 0 instead of lis 0 for 0,Chris Lattner
to make the code follow people's expectations better. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22861 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-18Handle loading of 0x????0000 constants with a single instruction.Jim Laskey
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22858 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-18Add support for ISD::AND, and its various optimized forms.Nate Begeman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22857 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-18Add support for target DAG nodes that take 4 operands, such as PowerPC'sNate Begeman
rlwinm. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22856 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-18Maintain consistency in negating thingsNate Begeman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22855 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-18Implement XOR, remove a broken sign_extend_inreg caseNate Begeman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22854 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-18Fix printing of VTSDNodesChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22853 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-18Add a bunch more simple nodes.Nate Begeman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22851 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-18Add a couple more nodes that are easy to handleNate Begeman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22850 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-18Be fruitful and multiply!Nate Begeman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22849 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-18Better version of isIntImmediate.Jim Laskey
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22848 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-17Teach the DAG->DAG ISel about FNEG, and how it can be used to invertNate Begeman
several of the PowerPC opcodes that come in both negated and non-negated forms. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22845 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-17Fix Transforms/LoopStrengthReduce/2005-08-17-OutOfLoopVariant.ll, a crashChris Lattner
on 177.mesa git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22843 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-17Move the code dependency for MathExtras.h from SelectionDAGNodes.h.Jim Laskey
Added some class dividers in SelectionDAG.cpp. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22841 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-17Move code dependency for MathExtras.h out of Constants.h.Jim Laskey
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22840 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-17Promote dependency for MathExtras.h out of Constants.h.Jim Laskey
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22839 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-17Culling out use of unions for converting FP to bits and vice versa.Jim Laskey
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22838 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-17add a beta option for turning on dag->dag iselChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22837 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-17initial hack at a dag->dag instruction selector. This is obviously woefullyChris Lattner
incomplete, but it is a start. It handles basic argument/retval stuff, immediates, add and sub. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22836 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-17add prototype, remove dead protoChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22835 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-17Fix a bug in RemoveDeadNodes where it would crash when its "optional"Chris Lattner
argument is not specified. Implement ReplaceAllUsesWith. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22834 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-17Switched to using BitsToDouble for int_to_float to avoid aliasing problem.Jim Laskey
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22831 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-17Fix some bugs in the alpha backend, some of which I introduced yesterday,Chris Lattner
and some that were preexisting. All alpha regtests pass now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22829 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-17Change hex float constants for the sake of VC++.Jim Laskey
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22828 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-17Add a new beta option for critical edge splitting, to avoid a problem thatChris Lattner
Nate noticed in yacr2 (and I know occurs in other places as well). This is still rough, as the critical edge blocks are not intelligently placed but is added to get some idea to see if this improves performance. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22825 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-17Use a new helper to split critical edges, making the code simpler.Chris Lattner
Do not claim to not change the CFG. We do change the cfg to split critical edges. This isn't causing us a problem now, but could likely do so in the future. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22824 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-17Fix a regression on X86, where FP values can be promoted too.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22822 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-17Fix a few small typos I noticed when converting this over to the DAG->DAGChris Lattner
selector. Also, there is no difference between addSImm and addImm, so just use addImm, folding some branches. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22819 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-17Removed UINT_TO_FP and SINT_TO_FP from ISel outright.Jim Laskey
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22818 91177308-0d34-0410-b5e6-96231b3b80d8