Commit Graph

53253 Commits

Author SHA1 Message Date
Sanjiv Gupta
18574b11b0 Reapply 85006 with a minor fix.
llvm-svn: 85052
2009-10-25 08:14:11 +00:00
Evan Cheng
a308ae55a5 Add a couple of ARM cross-rc coalescing tests.
llvm-svn: 85051
2009-10-25 08:01:41 +00:00
Evan Cheng
1c169777ca Update tests.
llvm-svn: 85050
2009-10-25 07:53:48 +00:00
Evan Cheng
d748ce45ab Add ARM getMatchingSuperRegClass to handle S / D / Q cross regclass coalescing.
llvm-svn: 85049
2009-10-25 07:53:28 +00:00
Evan Cheng
77ecc0adc5 Don't forget subreg indices when folding load / store.
llvm-svn: 85048
2009-10-25 07:52:27 +00:00
Evan Cheng
859d9f3b07 Use isIdentityCopy. Fix a bozo bug (flipped condition) in InvalidateRegDef.
llvm-svn: 85047
2009-10-25 07:51:47 +00:00
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