Chris Lattner
70d79bbe85
add a new insertAfter method, patch by Tom Jablin!
...
llvm-svn: 62158
2009-01-13 07:43:51 +00:00
Chris Lattner
50de4f0704
make -march=cpp handle the nocapture attribute, make it assert if it
...
sees attributes it doesn't know.
llvm-svn: 62155
2009-01-13 07:22:22 +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
Dale Johannesen
12bb54e183
Enable recursive inlining. Reduce inlining threshold
...
back to 200; 400 seems to be too high, loses more than
it gains.
llvm-svn: 62107
2009-01-12 22:11:50 +00:00
Devang Patel
78077adf03
Add classof() methods to support isa<> and other related facilities.
...
llvm-svn: 62104
2009-01-12 21:38:43 +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
Rafael Espindola
2fed481c49
Remove some dead code from the days llvm had type planes.
...
There might be more dead code, but with llvm-gcc bootstrap broken on linux x86-64 it is had to test :-(
llvm-svn: 62088
2009-01-12 15:53:25 +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
Chris Lattner
ed4ee47a0d
make tblgen autogenerate the nocapture intrinsics for
...
llvm.memcpy/memset/memmove. This allows removal of some
hackish code from basicaa.
llvm-svn: 62071
2009-01-12 02:41:37 +00:00
Chris Lattner
a844423a1b
make tblgen emit the entire Intrinsic::getAttributes method,
...
not a random piece of it. No functionality change.
llvm-svn: 62066
2009-01-12 01:18:58 +00:00
Dale Johannesen
831246cdbd
Increase default inlining aggressiveness in partial
...
compensation for turning off gcc's inliner. This gets
us closer to the amount of inlining we were getting before.
It is not a win on everything, of course, but seems to
gain overall.
llvm-svn: 62058
2009-01-11 23:11:00 +00:00
Gabor Greif
20c5fd503d
simplify CallSite helper class to not consult the Instruction's
...
opcode on each delegation.
Instead the information is cached on construction and the cached flag used thereafter.
Introduced two predicates: isCall and isInvoke.
llvm-svn: 62055
2009-01-11 22:33:22 +00:00
Chris Lattner
da5c0c85dc
Duncan is nervous about undefinedness of % with negatives. I'm
...
not thrilled about 64-bit % in general, so rewrite to use * instead.
llvm-svn: 62047
2009-01-11 20:41:36 +00:00
Chris Lattner
d1e5994f90
do not generated GEPs into vectors where they don't already exist.
...
We should treat vectors as atomic types, not like arrays.
llvm-svn: 62046
2009-01-11 20:23:52 +00:00
Chris Lattner
d2011c4015
Make a couple of cleanups to the instcombine bitcast/gep
...
canonicalization transform based on duncan's comments:
1) improve the comment about %.
2) within our index loop make sure the offset stays
within the *type size*, instead of within the *abi size*.
This allows us to reason explicitly about landing in tail
padding and means that issues like non-zero offsets into
[0 x foo] types don't occur anymore.
llvm-svn: 62045
2009-01-11 20:15:20 +00:00
Nick Lewycky
4d1c04a4ea
Use the spiffy new getAlignmentFromAttrs function.
...
llvm-svn: 62039
2009-01-11 17:02:06 +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
Evan Cheng
ce292ad389
80 col violation.
...
llvm-svn: 62024
2009-01-10 03:33:22 +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
Chris Lattner
0030a3f5d4
fix typo Duncan noticed.
...
llvm-svn: 61997
2009-01-09 18:31:39 +00:00
Chris Lattner
1219b4e6bc
Fix PR3304
...
llvm-svn: 61995
2009-01-09 18:18:43 +00:00
Misha Brukman
71c7e40966
Removed trailing whitespace from Makefiles.
...
llvm-svn: 61991
2009-01-09 16:44:42 +00:00
Chris Lattner
660c094906
Implement rdar://6480391, extending of equality icmp's to avoid a truncation.
...
I noticed this in the code compiled for a routine using std::map, which produced
this code:
%25 = tail call i32 @memcmp(i8* %24, i8* %23, i32 6) nounwind readonly
%.lobit.i = lshr i32 %25, 31 ; <i32> [#uses=1]
%tmp.i = trunc i32 %.lobit.i to i8 ; <i8> [#uses=1]
%toBool = icmp eq i8 %tmp.i, 0 ; <i1> [#uses=1]
br i1 %toBool, label %bb3, label %bb4
which compiled to:
call L_memcmp$stub
shrl $31, %eax
testb %al, %al
jne LBB1_11 ##
with this change, we compile it to:
call L_memcmp$stub
testl %eax, %eax
js LBB1_11
This triggers all the time in common code, with patters like this:
%169 = and i32 %ply, 1 ; <i32> [#uses=1]
%170 = trunc i32 %169 to i8 ; <i8> [#uses=1]
%toBool = icmp ne i8 %170, 0 ; <i1> [#uses=1]
%7 = lshr i32 %6, 24 ; <i32> [#uses=1]
%9 = trunc i32 %7 to i8 ; <i8> [#uses=1]
%10 = icmp ne i8 %9, 0 ; <i1> [#uses=1]
etc
llvm-svn: 61985
2009-01-09 07:47:06 +00:00
Chris Lattner
1ce1f9e7cd
Remove some old code that looks like a remanant from signed-types days.
...
llvm-svn: 61984
2009-01-09 07:10:58 +00:00
Chris Lattner
6140ea4f18
Fix PR3298, a crash in Jump Threading. Apparently even
...
jump threading can have bugs, who knew? ;-)
llvm-svn: 61983
2009-01-09 06:08:12 +00:00
Chris Lattner
5ce930d116
Fix part 3/2 of PR3290, making instcombine zap (gep(bitcast)) when possible.
...
llvm-svn: 61980
2009-01-09 05:44:56 +00:00
Chris Lattner
0e8e8e4926
move some code, check to see if the input to the GEP is a bitcast
...
(which is constant time and cheap) before checking hasAllZeroIndices.
llvm-svn: 61976
2009-01-09 04:53:57 +00:00
Dan Gohman
a487b137a8
Add load-folding table entries for MOVDQA.
...
llvm-svn: 61972
2009-01-09 02:40:34 +00:00
Dan Gohman
0e86745357
Whitespace and other minor adjustments to make SSE instructions have
...
the same formatting as their corresponding SSE2 instructions, for
consistency.
llvm-svn: 61971
2009-01-09 02:27:34 +00:00
Dale Johannesen
eb1316a896
Adjustments to last patch based on review.
...
llvm-svn: 61969
2009-01-09 01:30:11 +00:00
Dan Gohman
ff89414349
61949 accidentally introduced an escaped newline. Fix this by making
...
the comment a little more verbose.
llvm-svn: 61959
2009-01-08 23:51:48 +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
Dan Gohman
321b716d84
Delete unnecessary parens around return values.
...
llvm-svn: 61950
2009-01-08 22:19:34 +00:00
Dan Gohman
88a0d4277d
Fix the comment for lltok::backslash.
...
llvm-svn: 61949
2009-01-08 22:18:13 +00:00
Dan Gohman
831bc48415
Fix the path to llvm/Assembly/Parser.h in a comment.
...
llvm-svn: 61948
2009-01-08 22:17:05 +00:00