summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* Make TargetSelectInstruction protected and called from FastISel.cppDan Gohman2009-12-051-6/+0
| | | | | | instead of SelectionDAGISel.cpp. llvm-svn: 90636
* The debug information for an LLVM Instruction applies to that InstructionDan Gohman2009-12-051-33/+57
| | | | | | | and that Instruction only. Implement this by setting the "current debug position" back to Unknown after processing each instruction. llvm-svn: 90632
* improve portability to avoid conflicting with std::next in c++'0x.Chris Lattner2009-12-031-1/+1
| | | | | | Patch by Howard Hinnant! llvm-svn: 90365
* Move CopyCatchInfo into FunctionLoweringInfo.cpp too, for consistency.Dan Gohman2009-11-231-14/+1
| | | | llvm-svn: 89683
* Rename SelectionDAGLowering to SelectionDAGBuilder, and renameDan Gohman2009-11-231-102/+102
| | | | | | SelectionDAGBuild.cpp to SelectionDAGBuilder.cpp. llvm-svn: 89681
* Move the FunctionLoweringInfo class and some related utility functions outDan Gohman2009-11-231-1/+2
| | | | | | | of SelectionDAGBuild.h/cpp into its own files, to help separate general lowering logic from SelectionDAG-specific lowering logic. llvm-svn: 89667
* Fix fast-isel to avoid selecting the return instruction if aDan Gohman2009-11-201-3/+15
| | | | | | tail call has been encountered. llvm-svn: 89444
* Implement support to debug inlined functions.Devang Patel2009-11-101-15/+17
| | | | llvm-svn: 86748
* Hide a couple of options.Evan Cheng2009-11-091-1/+1
| | | | llvm-svn: 86522
* Move some code from being emitted as boilerplate duplicated in everyDan Gohman2009-10-291-0/+52
| | | | | | *ISelDAGToDAG.cpp to being regular code in SelectionDAGISel.cpp. llvm-svn: 85530
* Rename usesCustomDAGSchedInserter to usesCustomInserter, and update aDan Gohman2009-10-291-3/+7
| | | | | | | | bunch of associated comments, because it doesn't have anything to do with DAGs or scheduling. This is another step in decoupling MachineInstr emitting from scheduling. llvm-svn: 85517
* pseudosourcevalue is also still using getGlobalContext(), so it isn'tChris Lattner2009-10-271-0/+1
| | | | | | thread safe either. llvm-svn: 85253
* Indent code.Zhongxing Xu2009-10-161-1/+1
| | | | llvm-svn: 84247
* Set default location for a function if it is not set.Devang Patel2009-10-121-0/+2
| | | | llvm-svn: 83921
* Set default location for the function if it is not already set.Devang Patel2009-10-061-0/+2
| | | | | | This code is not yet enabled. llvm-svn: 83349
* Remove unnecessary cast.Devang Patel2009-09-291-4/+2
| | | | llvm-svn: 83100
* s/class Metadata/class MetadataContext/gDevang Patel2009-09-281-2/+2
| | | | llvm-svn: 83019
* Do not use global typedef for MDKindID.Devang Patel2009-09-281-2/+2
| | | | llvm-svn: 83016
* Tabs -> spaces, and remove trailing whitespace.Daniel Dunbar2009-09-201-70/+70
| | | | llvm-svn: 82355
* Fix PR4926. When target hook EmitInstrWithCustomInserter() insert new basic ↵Evan Cheng2009-09-191-6/+8
| | | | | | blocks and update CFG, it should also inform sdisel of the changes so the phi source operands will come from the right basic blocks. llvm-svn: 82311
* Enhance EmitInstrWithCustomInserter() so target can specify CFG changes that ↵Evan Cheng2009-09-181-6/+13
| | | | | | | | sdisel will use to properly complete phi nodes. Not functionality change yet. llvm-svn: 82273
* Revert r82214. It broke 403.gcc on x86_64 / Darwin.Evan Cheng2009-09-181-12/+5
| | | | llvm-svn: 82215
* Fix a bug in sdisel switch lowering code. When it updates the phi nodes in ↵Evan Cheng2009-09-181-5/+12
| | | | | | | | switch successor blocks, it can introduce multiple phi operands of the same value from different blocks (and may not be on the predecessor list). This can be seen on CodeGen/Generic/2006-09-06-SwitchLowering.ll. But it's not known to cause any real regression (but I have added an assertion for it now). llvm-svn: 82214
* Fix typo.Devang Patel2009-09-161-1/+1
| | | | llvm-svn: 82080
* At iSel time, update DebugLoc based on debug info attached with an instruction.Devang Patel2009-09-161-1/+30
| | | | llvm-svn: 82077
* eliminate uses of cerr()Chris Lattner2009-08-231-5/+5
| | | | llvm-svn: 79834
* remove a few DOUTs here and there.Chris Lattner2009-08-231-14/+15
| | | | llvm-svn: 79832
* Push LLVMContexts through the IntegerType APIs.Owen Anderson2009-08-131-1/+1
| | | | llvm-svn: 78948
* Split EVT into MVT and EVT, the former representing _just_ a primitive type, ↵Owen Anderson2009-08-111-3/+3
| | | | | | | | while the latter is capable of representing either a primitive or an extended type. llvm-svn: 78713
* Rename MVT to EVT, in preparation for splitting SimpleValueType out into its ↵Owen Anderson2009-08-101-8/+8
| | | | | | own struct type. llvm-svn: 78610
* Major calling convention code refactoring.Dan Gohman2009-08-051-119/+15
| | | | | | | | | | | | | | | | | | | Instead of awkwardly encoding calling-convention information with ISD::CALL, ISD::FORMAL_ARGUMENTS, ISD::RET, and ISD::ARG_FLAGS nodes, TargetLowering provides three virtual functions for targets to override: LowerFormalArguments, LowerCall, and LowerRet, which replace the custom lowering done on the special nodes. They provide the same information, but in a more immediately usable format. This also reworks much of the target-independent tail call logic. The decision of whether or not to perform a tail call is now cleanly split between target-independent portions, and the target dependent portion in IsEligibleForTailCallOptimization. This also synchronizes all in-tree targets, to help enable future refactoring and feature work. llvm-svn: 78142
* Delete a redundant variable.Dan Gohman2009-08-011-1/+0
| | | | llvm-svn: 77774
* Minor code simplifications.Dan Gohman2009-08-011-8/+8
| | | | llvm-svn: 77769
* SelectionDAGISel no longer needs to check hasAvailableExternallyLinkage,Dan Gohman2009-08-011-5/+0
| | | | | | | as it is now a MachineFunctionPass, and MachineFunctionPass now handles this. llvm-svn: 77760
* SelectionDAGISel does not "preserve all", since it makes lots of changesDan Gohman2009-07-311-1/+3
| | | | | | to the MachineFunction. llvm-svn: 77753
* Reapply r77654 with a fix: MachineFunctionPass's getAnalysisUsageDan Gohman2009-07-311-4/+7
| | | | | | | | shouldn't do AU.setPreservesCFG(), because even though CodeGen passes don't modify the LLVM IR CFG, they may modify the MachineFunction CFG, and passes like MachineLoop are registered with isCFGOnly set to true. llvm-svn: 77691
* Revert r77654, it appears to be causing llvm-gcc bootstrap failures, and manyDaniel Dunbar2009-07-311-7/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | failures when building assorted projects with clang. --- Reverse-merging r77654 into '.': U include/llvm/CodeGen/Passes.h U include/llvm/CodeGen/MachineFunctionPass.h U include/llvm/CodeGen/MachineFunction.h U include/llvm/CodeGen/LazyLiveness.h U include/llvm/CodeGen/SelectionDAGISel.h D include/llvm/CodeGen/MachineFunctionAnalysis.h U include/llvm/Function.h U lib/Target/CellSPU/SPUISelDAGToDAG.cpp U lib/Target/PowerPC/PPCISelDAGToDAG.cpp U lib/CodeGen/LLVMTargetMachine.cpp U lib/CodeGen/MachineVerifier.cpp U lib/CodeGen/MachineFunction.cpp U lib/CodeGen/PrologEpilogInserter.cpp U lib/CodeGen/MachineLoopInfo.cpp U lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp D lib/CodeGen/MachineFunctionAnalysis.cpp D lib/CodeGen/MachineFunctionPass.cpp U lib/CodeGen/LiveVariables.cpp llvm-svn: 77661
* Manage MachineFunctions with an analysis Pass instead of the AnnotableDan Gohman2009-07-311-4/+7
| | | | | | | mechanism. To support this, make MachineFunctionPass a little more complete. llvm-svn: 77654
* More migration to raw_ostream, the water has dried up around the iostream hole.Daniel Dunbar2009-07-251-1/+2
| | | | | | | | | | - Some clients which used DOUT have moved to DEBUG. We are deprecating the "magic" DOUT behavior which avoided calling printing functions when the statement was disabled. In addition to being unnecessary magic, it had the downside of leaving code in -Asserts builds, and of hiding potentially unnecessary computations. llvm-svn: 77019
* Switch to getNameStr().Daniel Dunbar2009-07-241-2/+2
| | | | llvm-svn: 76962
* Simplify / normalize some uses of Value::getName.Daniel Dunbar2009-07-211-1/+1
| | | | llvm-svn: 76553
* llvm_unreachable->llvm_unreachable(0), LLVM_UNREACHABLE->llvm_unreachable.Torok Edwin2009-07-141-2/+2
| | | | | | | | | This adds location info for all llvm_unreachable calls (which is a macro now) in !NDEBUG builds. In NDEBUG builds location info and the message is off (it only prints "UREACHABLE executed"). llvm-svn: 75640
* Fix assert(0) conversion, as suggested by Chris.Torok Edwin2009-07-121-5/+8
| | | | llvm-svn: 75423
* assert(0) -> LLVM_UNREACHABLE.Torok Edwin2009-07-111-1/+1
| | | | | | | | | Make llvm_unreachable take an optional string, thus moving the cerr<< out of line. LLVM_UNREACHABLE is now a simple wrapper that makes the message go away for NDEBUG builds. llvm-svn: 75379
* Convert more assert(0)+abort() -> LLVM_UNREACHABLE,Torok Edwin2009-07-111-7/+7
| | | | | | and abort()/exit() -> llvm_report_error(). llvm-svn: 75363
* As Chris pointed out, we don't actually need to pass the context around here.Owen Anderson2009-07-091-1/+1
| | | | llvm-svn: 75161
* Thread LLVMContext through MVT and related parts of SDISel.Owen Anderson2009-07-091-1/+1
| | | | llvm-svn: 75153
* Use common code for both ARM and Thumb-2 instruction and register info.David Goodwin2009-07-081-4/+9
| | | | llvm-svn: 75067
* Add a new step to legalization to legalize vector math operations. This Eli Friedman2009-05-231-0/+30
| | | | | | | | | | | will allow simplifying LegalizeDAG to eliminate type legalization. (I have a patch to do that, but it's not quite finished; I'll commit it once it's finished and I've fixed any review comments for this patch.) See the comment at the beginning of lib/CodeGen/SelectionDAG/LegalizeVectorOps.cpp for more details on the motivation for this patch. llvm-svn: 72325
* Remove the #ifndef NDEBUG from the FastISel debugging options. ThisDan Gohman2009-05-191-5/+0
| | | | | | fixes dejagnu tests that use these options. llvm-svn: 72094
OpenPOWER on IntegriCloud