Devang Patel
434239cc4f
Validate debug info values only if DwarfDebug is initialized.
...
llvm-svn: 62298
2009-01-16 02:15:14 +00:00
Devang Patel
befef54e67
Any debug info symbol is only valid if atleast one compile unit is seen.
...
llvm-svn: 62294
2009-01-16 01:49:46 +00:00
Dan Gohman
c5b1dbdb4e
Initial hazard recognizer support in post-pass scheduling. This includes
...
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
2009-01-16 01:33:36 +00:00
Devang Patel
f0e1e4cc51
Do not stumble over forward declared struct member.
...
llvm-svn: 62288
2009-01-16 00:50:53 +00:00
Devang Patel
1ee58c7d8c
Validate dbg_* intrinsics before lowering them.
...
llvm-svn: 62286
2009-01-15 23:41:32 +00:00
Mon P Wang
e235ba591f
Added missing support to widen an operand from a bit convert.
...
llvm-svn: 62285
2009-01-15 22:43:38 +00:00
Dan Gohman
3e0dcbbd15
Generalize the HazardRecognizer interface so that it can be used
...
to support MachineInstr-based scheduling in addition to
SDNode-based scheduling.
llvm-svn: 62284
2009-01-15 22:18:12 +00:00
Dan Gohman
23a5f63b21
Simplify the MachineLICM pass by having it only traverse outer
...
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
2009-01-15 22:01:38 +00:00
Rafael Espindola
0aba6c9435
Add the private linkage.
...
llvm-svn: 62279
2009-01-15 20:18:42 +00:00
Devang Patel
97d45c48c5
Use lightweight DebugInfo objects directly.
...
llvm-svn: 62276
2009-01-15 19:26:23 +00:00
Dan Gohman
6fcee67989
Move a few containers out of ScheduleDAGInstrs::BuildSchedGraph
...
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
2009-01-15 19:20:50 +00:00
Devang Patel
307fac7f3a
Use variable's context to identify respective DbgScope.
...
Use light weight DebugInfo object directly.
llvm-svn: 62269
2009-01-15 18:25:17 +00:00
Dan Gohman
273ef2ab9f
Make getWidenVectorType const; this file was missed in the
...
previous commit.
llvm-svn: 62266
2009-01-15 17:39:39 +00:00
Dan Gohman
791e6c24db
More consts on TargetLowering references.
...
llvm-svn: 62262
2009-01-15 16:58:17 +00:00
Dan Gohman
9dd6a69768
Use const with TargetLowering references in a few more places.
...
llvm-svn: 62260
2009-01-15 16:43:02 +00:00
Gabor Greif
feac7ccdbd
minor refactoring: use a more specific API
...
llvm-svn: 62256
2009-01-15 11:10:44 +00:00
Devang Patel
cf0db71b85
Do not construct debug scope if RootScope *is* null.
...
llvm-svn: 62209
2009-01-14 01:34:32 +00:00
Devang Patel
1da8253b35
Removoe MachineModuleInfo methods (and related DebugInfoDesc class hierarchy) that were used to handle debug info.
...
llvm-svn: 62199
2009-01-13 23:54:55 +00:00
Devang Patel
ba388f3905
Keep "has debug info" big in MachineModuleInfo to avoid circular dependency between AsmPrinter and CodeGen.
...
llvm-svn: 62191
2009-01-13 23:02:17 +00:00
Devang Patel
7a618394f6
Undo previous checkin.
...
llvm-svn: 62190
2009-01-13 22:54:57 +00:00
Devang Patel
e0f23e966d
Use DwarfWriter to record dbg variables.
...
llvm-svn: 62185
2009-01-13 21:44:10 +00:00
Devang Patel
ab5ef6abf1
Use dwarf writer to decide whether the module has debug info or not.
...
llvm-svn: 62184
2009-01-13 21:25:00 +00:00
Dan Gohman
f94a4aba16
Use assertions to check for conditions that should never happen.
...
llvm-svn: 62178
2009-01-13 20:25:24 +00:00
Dan Gohman
9e9858781c
The list-td and list-tdrr schedulers don't yet support physreg
...
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
2009-01-13 20:24:13 +00:00
Dan Gohman
c7fe713e72
Avoid referring to edge D after the Succs or Preds arrays have
...
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
2009-01-13 19:08:45 +00:00
Duncan Sands
975f2428ba
When replacing uses and the same node is reached
...
via two paths, process it once not twice, d'oh!
Analysis, testcase and original patch thanks to
Mon Ping Wang.
llvm-svn: 62169
2009-01-13 15:17:14 +00:00
Duncan Sands
439d97a6cb
Fix some typos. Also, the WidenedVectors map
...
was not being cleaned by ExpungeNode.
llvm-svn: 62167
2009-01-13 14:42:39 +00:00
Duncan Sands
8267463dec
Correct a comment - this is not a sign extension.
...
llvm-svn: 62166
2009-01-13 14:04:14 +00:00
Evan Cheng
6fd76e738c
Un-tabify.
...
llvm-svn: 62151
2009-01-13 06:08:37 +00:00
Evan Cheng
a706a020bc
FIX llvm-gcc bootstrap on x86_64 linux. If a virtual register is copied to a 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
2009-01-13 03:57:45 +00:00
Devang Patel
eed0505ed8
Use DebugInfo interface to lower dbg_* intrinsics.
...
llvm-svn: 62127
2009-01-13 00:35:13 +00:00
Devang Patel
13a43a3789
Start using DebugInfo API to emit debug info.
...
llvm-svn: 62125
2009-01-13 00:20:51 +00:00
Devang Patel
68ef0f4ecb
Emit debug info, only if at least one compile unit is seen.
...
llvm-svn: 62118
2009-01-12 23:09:42 +00:00
Devang Patel
4379343f92
If multiple compile units are seen then emit them independently. In other 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
2009-01-12 23:05:55 +00:00
Devang Patel
283436f4b9
Avoid cast<>, use light weith wrapper directly.
...
llvm-svn: 62115
2009-01-12 22:58:14 +00:00
Devang Patel
261d3cb2af
Use SrcLineInfo from DwarfWriter. The MachineModuleInfo copy will disappear soon.
...
llvm-svn: 62114
2009-01-12 22:54:42 +00:00
Duncan Sands
bcdbfb63dc
Rename getABITypeSize to getTypePaddedSize, as
...
suggested by Chris.
llvm-svn: 62099
2009-01-12 20:38:59 +00:00
Devang Patel
27f9c78c56
Add DwarfWriter interface to mainipulate source location info.
...
( May be this info should be directly handled by the dwarf writer ? )
llvm-svn: 62096
2009-01-12 19:17:34 +00:00
Devang Patel
149d412a0e
Clear debug info at the end of function processing.
...
llvm-svn: 62092
2009-01-12 18:48:36 +00:00
Devang Patel
89a815941c
There is no need to maintain separate labelid list in the dwarf writer. It is not a good idea.
...
llvm-svn: 62090
2009-01-12 18:41:00 +00:00
Evan Cheng
5e17ea36e1
Fix PR3241: Currently EmitCopyFromReg emits a copy from the physical 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
2009-01-12 03:19:55 +00:00
Owen Anderson
e6451daef4
More two-address fixes. This gets lua working with join-creation enabled.
...
llvm-svn: 62073
2009-01-12 03:10:40 +00:00
Evan Cheng
e280fcfbbc
CheckForPhysRegDependency should not return copy cost. It's not used. No functionality change.
...
llvm-svn: 62036
2009-01-11 08:53:35 +00:00
Devang Patel
a350457725
Reduce initial small vector sizes.
...
llvm-svn: 62023
2009-01-10 02:42:49 +00:00
Devang Patel
77332761ef
Fix thinko. Create parent scope if parent descriptor is *not* null.
...
llvm-svn: 62022
2009-01-10 02:34:18 +00:00
Evan Cheng
411c48b7d2
Duplicated node may produce a non-physical register def.
...
llvm-svn: 62015
2009-01-09 22:44:02 +00:00
Evan Cheng
7a918ea197
Minor debug output tweak.
...
llvm-svn: 62005
2009-01-09 20:42:34 +00:00
Devang Patel
7fd7643d23
Request DwarfWriter. This will be used to handle dbg_* intrinsics.
...
llvm-svn: 61999
2009-01-09 19:11:50 +00:00
Misha Brukman
71c7e40966
Removed trailing whitespace from Makefiles.
...
llvm-svn: 61991
2009-01-09 16:44:42 +00:00
Devang Patel
747d4b38ad
Convert DwarfWriter into a pass.
...
Now Users request DwarfWriter through getAnalysisUsage() instead of creating an instance of DwarfWriter object directly.
llvm-svn: 61955
2009-01-08 23:40:34 +00:00