Evan Cheng
a6242a5d04
Code clean up.
...
llvm-svn: 85046
2009-10-25 07:49:57 +00:00
Evan Cheng
92ad633488
Do not delete identity insert_subreg even if dest is virtual. Let later passes delete them. This avoids register scavenger complain.
...
llvm-svn: 85045
2009-10-25 07:48:51 +00:00
Evan Cheng
2a58cf4921
Add isIdentityCopy to check for identity copy (or extract_subreg, etc.)
...
llvm-svn: 85044
2009-10-25 07:47:07 +00:00
Nick Lewycky
2b8400628d
Remove includes of Support/Compiler.h that are no longer needed after the
...
VISIBILITY_HIDDEN removal.
llvm-svn: 85043
2009-10-25 06:57:41 +00:00
Nick Lewycky
711c726c97
Remove VISIBILITY_HIDDEN from class/struct found inside anonymous namespaces.
...
Chris claims we should never have visibility_hidden inside any .cpp file but
that's still not true even after this commit.
llvm-svn: 85042
2009-10-25 06:33:48 +00:00
Chris Lattner
81c06b943c
this is done.
...
llvm-svn: 85041
2009-10-25 06:17:51 +00:00
Chris Lattner
d8db8b6952
Teach FoldBitCast to be able to handle bitcasts from (e.g.) i128 -> <4 x float>.
...
This allows us to simplify this:
union vec2d {
double e[2];
double v __attribute__((vector_size(16)));
};
typedef union vec2d vec2d;
static vec2d a={{1,2}}, b={{3,4}};
vec2d foo () {
return (vec2d){ .v = a.v + b.v * (vec2d){{5,5}}.v };
}
down to:
define %0 @foo() nounwind ssp {
entry:
%mrv5 = insertvalue %0 undef, double 1.600000e+01, 0 ; <%0> [#uses=1]
%mrv6 = insertvalue %0 %mrv5, double 2.200000e+01, 1 ; <%0> [#uses=1]
ret %0 %mrv6
}
instead of:
define %0 @foo() nounwind ssp {
entry:
%mrv5 = insertvalue %0 undef, double extractelement (<2 x double> fadd (<2 x double> fmul (<2 x double> bitcast (<1 x i128> <i128 85174437667405312423031577302488055808> to <2 x double>), <2 x double> <double 3.000000e+00, double 4.000000e+00>), <2 x double> <double 1.000000e+00, double 2.000000e+00>), i32 0), 0 ; <%0> [#uses=1]
%mrv6 = insertvalue %0 %mrv5, double extractelement (<2 x double> fadd (<2 x double> fmul (<2 x double> bitcast (<1 x i128> <i128 85174437667405312423031577302488055808> to <2 x double>), <2 x double> <double 3.000000e+00, double 4.000000e+00>), <2 x double> <double 1.000000e+00, double 2.000000e+00>), i32 1), 1 ; <%0> [#uses=1]
ret %0 %mrv6
}
llvm-svn: 85040
2009-10-25 06:15:37 +00:00
Chris Lattner
d80c1f61d2
move FoldBitCast earlier in the file, and use it instead of
...
ConstantExpr::getBitCast in various places.
llvm-svn: 85039
2009-10-25 06:08:26 +00:00
Chris Lattner
f6cb8d6b90
refactor FoldBitCast to reduce nesting and to always return a constantexpr
...
instead of returning null on failure. No functionality change.
llvm-svn: 85038
2009-10-25 06:02:57 +00:00
Nick Lewycky
cacdc4d65a
Remove ICmpInst::isSignedPredicate which was a reimplementation
...
CmpInst::isSigned.
llvm-svn: 85037
2009-10-25 05:20:17 +00:00
Nick Lewycky
a16e115bd4
Sink isTrueWhenEqual from ICmpInst to CmpInst. Add a matching isFalseWhenEqual
...
which is equal to !isTrueWhenEqual for ints but not for floats.
llvm-svn: 85036
2009-10-25 03:50:03 +00:00
Daniel Dunbar
499815e9f9
lit: Add --config-prefix option, to override default config file names.
...
llvm-svn: 85035
2009-10-25 03:30:55 +00:00
Nick Lewycky
242c20ffde
Indent.
...
llvm-svn: 85034
2009-10-25 03:22:00 +00:00
Mikhail Glushenkov
ef7afeb176
Regenerate.
...
llvm-svn: 85031
2009-10-25 01:44:24 +00:00
Mikhail Glushenkov
5f133de5c2
Document OptionPreprocessor.
...
llvm-svn: 85030
2009-10-25 01:44:11 +00:00
Mikhail Glushenkov
98921da4dd
Add a test for OptionPreprocessor.
...
llvm-svn: 85029
2009-10-25 01:43:50 +00:00
Daniel Dunbar
69b298e1c2
lit: Allow use of /dev/null in redirects on Windows (replace by a temporary
...
file).
llvm-svn: 85028
2009-10-25 01:37:26 +00:00
Jim Grosbach
7af2399458
When the scavenger is looking for a good candidate location to restore from a
...
spill, it should avoid doing so inside the live range of a virtual register.
llvm-svn: 85026
2009-10-25 00:45:07 +00:00
Dan Gohman
06621f065a
Update these tests to match what Loop::print now prints.
...
llvm-svn: 85021
2009-10-24 23:52:07 +00:00
Dan Gohman
07044648b2
MapValue doesn't needs its LLVMContext argument.
...
llvm-svn: 85020
2009-10-24 23:37:16 +00:00
Dan Gohman
1e96c6acaf
Rename isLoopExit to isLoopExiting, for consistency with the wording
...
used elsewhere - an exit block is a block outside the loop branched to
from within the loop. An exiting block is a block inside the loop that
branches out.
llvm-svn: 85019
2009-10-24 23:34:26 +00:00
Dan Gohman
3c62b33053
Delete a spurious semicolon.
...
llvm-svn: 85018
2009-10-24 23:24:45 +00:00
Dan Gohman
6e2d1c608b
Make these tests more interesting by using
...
-verify-dom-info and -verify-loop-info, which enable additional
(expensive) consistency checks.
llvm-svn: 85017
2009-10-24 23:23:04 +00:00
Dan Gohman
477456910a
Rewrite LoopRotation's SSA updating code using SSAUpdater.
...
llvm-svn: 85016
2009-10-24 23:19:52 +00:00
Daniel Dunbar
e66bb298d4
lit: Support '>>' redirections when executing scripts internally.
...
llvm-svn: 85014
2009-10-24 20:32:49 +00:00
Daniel Dunbar
59d81da39c
Update CMake dependencies.
...
llvm-svn: 85013
2009-10-24 20:32:43 +00:00
Daniel Dunbar
d98eb10494
Teach macho-dump to dump UUIDs.
...
llvm-svn: 85012
2009-10-24 20:32:36 +00:00
Dan Gohman
e970f8a450
Make DominanceFrontierBase::print's output prettier.
...
llvm-svn: 85011
2009-10-24 20:01:11 +00:00
Dan Gohman
d60e3bf386
Make DominanceFrontier::addBasicBlock return the iterator for the newly
...
inserted block.
llvm-svn: 85010
2009-10-24 19:57:58 +00:00
Dan Gohman
a4883a3903
Add an explicit keyword.
...
llvm-svn: 85009
2009-10-24 19:56:23 +00:00
Sanjiv Gupta
ec0d345a46
Revert back 85006 for now as it breaks PIC16 tests.
...
llvm-svn: 85008
2009-10-24 18:19:41 +00:00
Sanjiv Gupta
1fcb847e01
Adding support for placing global objects in shared data memory.
...
llvm-svn: 85006
2009-10-24 18:02:44 +00:00
Chris Lattner
5f456758c6
various cleanups suggested by Duncan
...
llvm-svn: 84993
2009-10-24 05:27:19 +00:00
Chris Lattner
9a1f5c9f90
fix PR5287, a serious regression from my previous patches. Thanks to
...
Duncan for the nice tiny testcase.
llvm-svn: 84992
2009-10-24 05:22:15 +00:00
Victor Hernandez
e8998896f5
Auto-upgrade free instructions to calls to the builtin free function.
...
Update all analysis passes and transforms to treat free calls just like FreeInst.
Remove RaiseAllocations and all its tests since FreeInst no longer needs to be raised.
llvm-svn: 84987
2009-10-24 04:23:03 +00:00
Evan Cheng
0e5c6b3b69
80 col violation.
...
llvm-svn: 84986
2009-10-24 02:07:42 +00:00
Anton Korobeynikov
0e56d9fdb7
Add some asserts to catch copyRegToReg() fails early
...
llvm-svn: 84983
2009-10-24 00:27:00 +00:00
Jim Grosbach
e295e49760
Restrict Thumb1 register allocation to low registers, even for instructions that
...
can access the hi regs. Our prologue and epilogue code doesn't know how to
properly handle save/restore of the hi regs, so things go badly when we alloc
them.
llvm-svn: 84982
2009-10-24 00:19:24 +00:00
Evan Cheng
82de095652
Identity copies should not contribute to spill weight.
...
llvm-svn: 84978
2009-10-23 23:09:19 +00:00
Jim Grosbach
5b5a404677
FIXME no longer applies. R12 and R3 are available for allocation
...
llvm-svn: 84977
2009-10-23 23:07:42 +00:00
Jeffrey Yasskin
8ff8b897a5
Fix http://llvm.org/PR4822 : allow module deletion after a function has been
...
compiled.
When functions are compiled, they accumulate references in the JITResolver's
stub maps. This patch removes those references when the functions are
destroyed. It's illegal to destroy a Function when any thread may still try to
call its machine code.
This patch also updates r83987 to use ValueMap instead of explicit CallbackVHs
and fixes a couple "do stuff inside assert()" bugs from r84522.
llvm-svn: 84975
2009-10-23 22:37:43 +00:00
Victor Hernandez
8428eb5720
Remove AllocationInst. Since MallocInst went away, AllocaInst is the only subclass of AllocationInst, so it no longer is necessary.
...
llvm-svn: 84969
2009-10-23 21:09:37 +00:00
Jeffrey Yasskin
bc5f122491
Fix stylistic and documentation problems in ValueMap found by Nick Lewycky and
...
Evan Cheng.
llvm-svn: 84967
2009-10-23 20:54:00 +00:00
Dan Gohman
b15fee5666
APInt-ify the gep scaling code, so that it correctly handles the case where
...
the scale overflows pointer-sized arithmetic. This fixes PR5281.
llvm-svn: 84954
2009-10-23 17:57:43 +00:00
Dan Gohman
ad2555c9a3
Make LoopDeletion check the maximum backedge taken count, rather than the
...
exact backedge taken count, when checking for infinite loops. This allows
it to delete loops with multiple exit conditions.
llvm-svn: 84952
2009-10-23 17:10:01 +00:00
Chris Lattner
d1dbcae98f
some stuff is done, we still have constantexpr simplification to do.
...
llvm-svn: 84943
2009-10-23 07:00:55 +00:00
Chris Lattner
4874f5bce5
teach libanalysis to simplify vector loads with bitcast sources. This
...
implements something out of Target/README.txt producing:
_foo: ## @foo
movl 4(%esp), %eax
movapd LCPI1_0, %xmm0
movapd %xmm0, (%eax)
ret $4
instead of:
_foo: ## @foo
movl 4(%esp), %eax
movapd _b, %xmm0
mulpd LCPI1_0, %xmm0
addpd _a, %xmm0
movapd %xmm0, (%eax)
ret $4
llvm-svn: 84942
2009-10-23 06:57:37 +00:00
Chris Lattner
2ee1f0f0b5
enhance FoldReinterpretLoadFromConstPtr to handle loads of up to 32
...
bytes (i256).
llvm-svn: 84941
2009-10-23 06:50:36 +00:00
Chris Lattner
b1d2706a4c
teach libanalysis to fold int and fp loads from almost arbitrary
...
non-type-safe constant initializers. This sort of thing happens
quite a bit for 4-byte loads out of string constants, unions,
bitfields, and an interesting endianness check from sqlite, which
is something like this:
const int sqlite3one = 1;
# define SQLITE_BIGENDIAN (*(char *)(&sqlite3one)==0)
# define SQLITE_LITTLEENDIAN (*(char *)(&sqlite3one)==1)
# define SQLITE_UTF16NATIVE (SQLITE_BIGENDIAN?SQLITE_UTF16BE:SQLITE_UTF16LE)
all of these macros now constant fold away.
This implements PR3152 and is based on a patch started by Eli, but heavily
modified and extended.
llvm-svn: 84936
2009-10-23 06:23:49 +00:00
Tanya Lattner
16727944b3
Add 2.6 release note.
...
llvm-svn: 84934
2009-10-23 06:20:06 +00:00