summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen
Commit message (Collapse)AuthorAgeFilesLines
* Fix the check for an empty basic block to check for an empty SUnitsDan Gohman2009-01-161-2/+2
| | | | | | | | array instead, since this is what the scheduler actually cares about. And remove a check that is unnecessary, since it can assume that SUnits isn't empty. llvm-svn: 62362
* new nodes should be added to the worklist, not old nodes.Chris Lattner2009-01-161-1/+2
| | | | llvm-svn: 62359
* Fix comments.Devang Patel2009-01-161-5/+5
| | | | llvm-svn: 62358
* CreateVirtualRegisters does trivial copy coalescing. If a node def is used ↵Evan Cheng2009-01-162-56/+63
| | | | | | by a single CopyToReg, it reuses the virtual register assigned to the CopyToReg. This won't work for SDNode that is a clone or is itself cloned. Disable this optimization for those nodes or it can end up with non-SSA machine instructions. llvm-svn: 62356
* Use lightweight DebugInfo objects directly.Devang Patel2009-01-161-51/+50
| | | | llvm-svn: 62341
* Align source code.Devang Patel2009-01-161-4/+4
| | | | llvm-svn: 62328
* Fix a "comparison between signed and unsigned integer expressions"Dan Gohman2009-01-161-1/+1
| | | | | | warning. llvm-svn: 62327
* Registry.h should not depend on CommandLine.h.Mikhail Glushenkov2009-01-164-0/+4
| | | | | | | Split Support/Registry.h into two files so that we have less to recompile every time CommandLine.h is changed. llvm-svn: 62312
* Delete trailing whitespace.Mikhail Glushenkov2009-01-164-323/+323
| | | | llvm-svn: 62307
* Validate debug info values only if DwarfDebug is initialized.Devang Patel2009-01-161-1/+1
| | | | llvm-svn: 62298
* Any debug info symbol is only valid if atleast one compile unit is seen.Devang Patel2009-01-161-0/+4
| | | | llvm-svn: 62294
* Initial hazard recognizer support in post-pass scheduling. This includesDan Gohman2009-01-162-9/+120
| | | | | | | a new toy hazard recognizier heuristic which attempts to direct the scheduler to avoid clumping large groups of loads or stores too densely. llvm-svn: 62291
* Do not stumble over forward declared struct member. Devang Patel2009-01-161-0/+5
| | | | llvm-svn: 62288
* Validate dbg_* intrinsics before lowering them.Devang Patel2009-01-153-10/+55
| | | | llvm-svn: 62286
* Added missing support to widen an operand from a bit convert.Mon P Wang2009-01-152-0/+32
| | | | llvm-svn: 62285
* Generalize the HazardRecognizer interface so that it can be usedDan Gohman2009-01-153-23/+14
| | | | | | | to support MachineInstr-based scheduling in addition to SDNode-based scheduling. llvm-svn: 62284
* Simplify the MachineLICM pass by having it only traverse outerDan Gohman2009-01-151-122/+60
| | | | | | | | | loops, hoisting instructions all the way out in one step rather than hoisting them one nest level at a time. Also, make a few other code simplifications. This speeds up MachineLICM by several fold. llvm-svn: 62283
* Add the private linkage.Rafael Espindola2009-01-155-6/+13
| | | | llvm-svn: 62279
* Use lightweight DebugInfo objects directly.Devang Patel2009-01-151-82/+65
| | | | llvm-svn: 62276
* Move a few containers out of ScheduleDAGInstrs::BuildSchedGraphDan Gohman2009-01-1512-108/+103
| | | | | | | | | | | and into the ScheduleDAGInstrs class, so that they don't get destructed and re-constructed for each block. This fixes a compile-time hot spot in the post-pass scheduler. To help facilitate this, tidy and do some minor reorganization in the scheduler constructor functions. llvm-svn: 62275
* Use variable's context to identify respective DbgScope.Devang Patel2009-01-151-11/+25
| | | | | | Use light weight DebugInfo object directly. llvm-svn: 62269
* Make getWidenVectorType const; this file was missed in theDan Gohman2009-01-151-1/+1
| | | | | | previous commit. llvm-svn: 62266
* More consts on TargetLowering references.Dan Gohman2009-01-154-10/+9
| | | | llvm-svn: 62262
* Use const with TargetLowering references in a few more places.Dan Gohman2009-01-152-5/+7
| | | | llvm-svn: 62260
* minor refactoring: use a more specific APIGabor Greif2009-01-151-2/+3
| | | | llvm-svn: 62256
* Do not construct debug scope if RootScope *is* null.Devang Patel2009-01-141-1/+1
| | | | llvm-svn: 62209
* Removoe MachineModuleInfo methods (and related DebugInfoDesc class ↵Devang Patel2009-01-133-2453/+10
| | | | | | hierarchy) that were used to handle debug info. llvm-svn: 62199
* Keep "has debug info" big in MachineModuleInfo to avoid circular dependency ↵Devang Patel2009-01-132-0/+2
| | | | | | between AsmPrinter and CodeGen. llvm-svn: 62191
* Undo previous checkin.Devang Patel2009-01-132-9/+2
| | | | llvm-svn: 62190
* Use DwarfWriter to record dbg variables.Devang Patel2009-01-132-4/+11
| | | | llvm-svn: 62185
* Use dwarf writer to decide whether the module has debug info or not.Devang Patel2009-01-132-2/+9
| | | | llvm-svn: 62184
* Use assertions to check for conditions that should never happen.Dan Gohman2009-01-131-12/+6
| | | | llvm-svn: 62178
* The list-td and list-tdrr schedulers don't yet support physregDan Gohman2009-01-132-2/+10
| | | | | | | | | | | scheduling dependencies. Add assertion checks to help catch this. It appears the Mips target defaults to list-td, and it has a regression test that uses a physreg dependence. Such code was liable to be miscompiled, and now evokes an assertion failure. llvm-svn: 62177
* Avoid referring to edge D after the Succs or Preds arrays haveDan Gohman2009-01-131-3/+3
| | | | | | | been modified, to avoid trouble in the (unlikely) scenario that D is a reference to an element in one of those arrays. llvm-svn: 62173
* When replacing uses and the same node is reachedDuncan Sands2009-01-131-16/+9
| | | | | | | | via two paths, process it once not twice, d'oh! Analysis, testcase and original patch thanks to Mon Ping Wang. llvm-svn: 62169
* Fix some typos. Also, the WidenedVectors mapDuncan Sands2009-01-132-9/+20
| | | | | | was not being cleaned by ExpungeNode. llvm-svn: 62167
* Correct a comment - this is not a sign extension.Duncan Sands2009-01-131-1/+1
| | | | llvm-svn: 62166
* Un-tabify.Evan Cheng2009-01-131-1/+1
| | | | llvm-svn: 62151
* FIX llvm-gcc bootstrap on x86_64 linux. If a virtual register is copied to a ↵Evan Cheng2009-01-131-0/+13
| | | | | | physical register, it's not necessarily defined by a copy. We have to watch out it doesn't clobber any sub-register that might be live during its live interval. If the live interval crosses a basic block, then it's not safe to check with the less conservative check (by scanning uses and defs) because it's possible a sub-register might be live out of the block. llvm-svn: 62144
* Use DebugInfo interface to lower dbg_* intrinsics.Devang Patel2009-01-136-56/+69
| | | | llvm-svn: 62127
* Start using DebugInfo API to emit debug info.Devang Patel2009-01-131-11/+10
| | | | llvm-svn: 62125
* Emit debug info, only if at least one compile unit is seen.Devang Patel2009-01-121-2/+8
| | | | llvm-svn: 62118
* If multiple compile units are seen then emit them independently. In other ↵Devang Patel2009-01-121-65/+74
| | | | | | | | words, do not force all DIEs into first, whatever it is, compile unit. Note, multiple compile unit support is not well tested (it did not work correctly until now anyway.) llvm-svn: 62116
* Avoid cast<>, use light weith wrapper directly.Devang Patel2009-01-121-3/+3
| | | | llvm-svn: 62115
* Use SrcLineInfo from DwarfWriter. The MachineModuleInfo copy will disappear ↵Devang Patel2009-01-121-12/+9
| | | | | | soon. llvm-svn: 62114
* Rename getABITypeSize to getTypePaddedSize, asDuncan Sands2009-01-1210-32/+33
| | | | | | suggested by Chris. llvm-svn: 62099
* Add DwarfWriter interface to mainipulate source location info.Devang Patel2009-01-121-45/+91
| | | | | | ( May be this info should be directly handled by the dwarf writer ? ) llvm-svn: 62096
* Clear debug info at the end of function processing.Devang Patel2009-01-121-1/+12
| | | | llvm-svn: 62092
* There is no need to maintain separate labelid list in the dwarf writer. It ↵Devang Patel2009-01-121-36/+5
| | | | | | is not a good idea. llvm-svn: 62090
* Fix PR3241: Currently EmitCopyFromReg emits a copy from the physical ↵Evan Cheng2009-01-125-65/+87
| | | | | | | | register to a virtual register unless it requires an expensive cross class copy. That means we are only treating "expensive to copy" register dependency as physical register dependency. Also future proof the scheduler to handle "normal" physical register dependencies. The code is not exercised yet. llvm-svn: 62074
OpenPOWER on IntegriCloud