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
Dale Johannesen
4c25cb12ea
Do not inline functions with (dynamic) alloca into
...
functions that don't already have a (dynamic) alloca.
Dynamic allocas cause inefficient codegen and we shouldn't
propagate this (behavior follows gcc). Two existing tests
assumed such inlining would be done; they are hacked by
adding an alloca in the caller, preserving the point of
the tests.
llvm-svn: 61946
2009-01-08 21:45:23 +00:00
Duncan Sands
51e12762d5
Use mayBeOverridden here, in anticipation of the
...
day when more linkage types will be handled.
llvm-svn: 61944
2009-01-08 20:55:49 +00:00
Chris Lattner
5a8a2b046d
ValueTracker can't assume that an alloca with no specified alignment
...
will get its preferred alignment. It has to be careful and cautiously assume
it will just get the ABI alignment. This prevents instcombine from rounding
up the alignment of a load/store without adjusting the alignment of the alloca.
llvm-svn: 61934
2009-01-08 19:28:38 +00:00
Chris Lattner
e16e141b70
one more crash from PR3281, we now diagnose:
...
llvm-as: t.ll:2:39: function may not return opaque type
%"bwmoyl" = tail call coldcc opaque @g()
^
llvm-svn: 61933
2009-01-08 19:05:36 +00:00
Devang Patel
97863f513c
Add DebugInfo based APIs to record source line info.
...
llvm-svn: 61928
2009-01-08 17:19:22 +00:00
Misha Brukman
ae1566f744
* Moved author attribution to CREDITS.TXT
...
* Removed trailing whitespace
llvm-svn: 61927
2009-01-08 16:40:25 +00:00
Misha Brukman
cada42bb4e
* Alphabetized #includes
...
* Removed trailing whitespace
llvm-svn: 61926
2009-01-08 15:50:22 +00:00
Chris Lattner
fe3e114d7a
add some more crazy strlen and memcpy stuff I noticed in spec.
...
llvm-svn: 61918
2009-01-08 07:34:55 +00:00
Chris Lattner
304f33297f
add some notes about strlen craziness in eon.
...
llvm-svn: 61917
2009-01-08 06:52:57 +00:00
Chris Lattner
60a03a2f36
This implements the second half of the fix for PR3290, handling
...
loads from allocas that cover the entire aggregate. This handles
some memcpy/byval cases that are produced by llvm-gcc. This triggers
a few times in kc++ (with std::pair<std::_Rb_tree_const_iterator
<kc::impl_abstract_phylum*>,bool>) and once in 176.gcc (with %struct..0anon).
llvm-svn: 61915
2009-01-08 05:42:05 +00:00
Devang Patel
3125e21ae4
Add APIs to record regions and variables.
...
Again, shamelessly copied from MMI.
llvm-svn: 61912
2009-01-08 02:49:34 +00:00
Devang Patel
0db006ea38
Add APIs to manage scope using DebugInfo interface.
...
This is a shameless copy of similar APIs from MachineModuleInfo. The copy from MMI will be deleted in near future.
llvm-svn: 61908
2009-01-08 02:33:41 +00:00
Bob Wilson
4a5897fc16
Fix failure messages in Verifier::PerformTypeCheck. The argument numbers
...
passed in to this function changed to support multiple return values,
leading to some incorrect argument numbers in the failure messages.
With this change, the ArgNo values used for return values and parameters are
disjoint, and the new IntrinsicParam function translates those ArgNo values
to strings that can be used in the messages. This also fixes a few places
where PerformTypeCheck did not return false following calls to CheckFailed.
llvm-svn: 61903
2009-01-08 01:56:06 +00:00
Oscar Fuentes
b7928f1380
CMake: removed lib/VMCore/DebugInfoBuilder.cpp.
...
llvm-svn: 61900
2009-01-08 00:18:52 +00:00
Bob Wilson
1d703391e7
Assert that VectorType::getTruncatedElementVectorType is not used with
...
odd bit-width vector elements. Add a check in the verifier for this also.
llvm-svn: 61899
2009-01-07 23:44:27 +00:00
Chris Lattner
0e3c4e89eb
remove DebugInfoBuilder, it has been subsumed by Analysis/DebugInfo.h
...
llvm-svn: 61898
2009-01-07 23:25:06 +00:00
Misha Brukman
6338af14f6
Fix off-by-one error in traversing an array; this fixes a test.
...
The error was reported by gcc-4.3.0 during compilation.
llvm-svn: 61896
2009-01-07 23:07:29 +00:00
Gabor Greif
e3326b1e14
revert to functionally equivalent formulation
...
llvm-svn: 61895
2009-01-07 23:07:22 +00:00
Gabor Greif
31343a0b10
use the obvious getters
...
llvm-svn: 61893
2009-01-07 22:39:29 +00:00