Dan Gohman
8f7b263087
Fix an abort on a store of an empty struct member. getValue returns
...
null in the case of an empty struct, so don't try to call getNumValues
on it.
llvm-svn: 81180
2009-09-08 01:44:02 +00:00
Nick Lewycky
5536fa68c5
Verify types. Invalid types can be constructed when assertions are off.
...
Make the verifier more robust by avoiding unprotected cast<> calls. Notably,
Assert1(isa<>); cast<> is not safe as Assert1 does not terminate the program.
llvm-svn: 81179
2009-09-08 01:23:52 +00:00
Chris Lattner
ee1d1d3173
Fix PR4882, by making MemCpyOpt not dereference removed stores to get the
...
context for the newly created operations.
Patch by Jakub Staszak!
llvm-svn: 81175
2009-09-08 00:27:14 +00:00
Chris Lattner
37dbbde91b
fix ComputeMaskedBits handling of zext/sext/trunc to work with vectors.
...
This fixes PR4905
llvm-svn: 81174
2009-09-08 00:13:52 +00:00
Chris Lattner
1247f36e13
add some comments to describe the invariants.
...
llvm-svn: 81173
2009-09-08 00:06:16 +00:00
Dan Gohman
1147a7ba87
Reappy r80998, now that the GlobalOpt bug that it exposed on MiniSAT is fixed.
...
llvm-svn: 81172
2009-09-07 23:54:19 +00:00
Dan Gohman
572ecc26b6
Fix a thinko: When lowering fneg with xor, bitcast the operands
...
from floating-point to integer first, and bitcast the result
back to floating-point. Previously, this test was passing by
falling back to SelectionDAG lowering. The resulting code isn't
as nice, but it's correct and CodeGen now stays on the fast path.
llvm-svn: 81171
2009-09-07 23:47:14 +00:00
Dan Gohman
34f89141ae
Don't commit stores with addresses that have indices that are not
...
compile-time constant integers or that are out of bounds for their
corresponding static array types. These can cause aliasing that
GlobalOpt assumes won't happen.
llvm-svn: 81165
2009-09-07 22:44:55 +00:00
Dan Gohman
b8c9d1974c
Don't commit addresses of aggregate values. This avoids problems with
...
an aggregate store overlapping a different aggregate store, despite
the stores having distinct addresses.
llvm-svn: 81164
2009-09-07 22:42:05 +00:00
Dan Gohman
f1dd8d2a5b
Fix GlobalOpt to avoid committing a store if the address getelementptr
...
is missing the inbounds flag. This is slightly conservative, but it
avoids problems with two constants pointing to the same address but
getting distinct entries in the Memory DenseMap.
llvm-svn: 81163
2009-09-07 22:40:13 +00:00
Dan Gohman
e44305a42b
Preserve the InBounds flag when evaluating a getelementptr instruction
...
into a getelementptr ConstantExpr.
llvm-svn: 81162
2009-09-07 22:34:43 +00:00
Dan Gohman
9268f469f5
Simplify this code by using hasDefinitiveInitializer().
...
llvm-svn: 81161
2009-09-07 22:31:26 +00:00
Nick Lewycky
1528b90211
Express this in the canonical way.
...
llvm-svn: 81157
2009-09-07 21:50:24 +00:00
Nick Lewycky
1bde81d01d
Homogenize whitespace.
...
llvm-svn: 81156
2009-09-07 20:44:51 +00:00
Duncan Sands
5c77da0572
Using a signal handler that does nothing should be
...
equivalent to SIG_IGN.
llvm-svn: 81144
2009-09-07 05:58:25 +00:00
Daniel Dunbar
b258ff7cee
Disable MDNode uniquing.
...
- Hopefully this unbreaks some llvm-gcc bootstraps.
llvm-svn: 81141
2009-09-07 04:05:49 +00:00
Eric Christopher
6acdc39b86
Fix comment.
...
llvm-svn: 81138
2009-09-06 22:20:54 +00:00
Anton Korobeynikov
6c6f65f3c1
Do not create calls via PLT in compilation callback - this is higly platform
...
dependent. Hopefully, this will fix PR3801.
llvm-svn: 81132
2009-09-06 20:21:48 +00:00
Duncan Sands
357614a0ca
Do not try to override non-virtual methods, especially
...
when the new method gives the same result as the original
(as far as I can see). This will hopefully pacify icc.
llvm-svn: 81131
2009-09-06 20:02:00 +00:00
Duncan Sands
6efbe6150b
Remove a left over bit of code with no effect.
...
llvm-svn: 81128
2009-09-06 19:29:07 +00:00
Duncan Sands
9041cda7c7
Avoid warnings if assertions are off.
...
llvm-svn: 81127
2009-09-06 19:28:38 +00:00
Duncan Sands
265ebcdcfc
Remove unreachable code.
...
llvm-svn: 81126
2009-09-06 19:27:53 +00:00
Duncan Sands
942d35c184
Simplify. Testing shows that this is not equivalent to BBI = CR.CaseBB + 1.
...
llvm-svn: 81124
2009-09-06 18:03:32 +00:00
Duncan Sands
39ca207077
Avoid an unused variable warning when assertions are
...
disabled.
llvm-svn: 81122
2009-09-06 16:27:34 +00:00
Duncan Sands
0d5fa5f018
Mark more constants unsigned, as warned about by icc ( #68 ).
...
Patch by Erick Tryzelaar.
llvm-svn: 81116
2009-09-06 12:56:52 +00:00
Duncan Sands
598fe699d0
Remove some not-really-used variables, as warned
...
about by icc (#593 , partial). Patch by Erick Tryzelaar.
llvm-svn: 81115
2009-09-06 12:41:19 +00:00
Benjamin Kramer
f41c1c09fa
More MSVC warning fixes:
...
1. DUPMAX is defined in regcomp.c, no need to redefine it in regutils.
2. MSVC doesn't like snprintf, use _snprintf instead.
llvm-svn: 81114
2009-09-06 12:26:28 +00:00
Duncan Sands
ab1e3dc9e2
Remove strange 'const' qualifiers, as warned about by icc
...
(#411 ). Patch by Erick Tryzelaar.
llvm-svn: 81113
2009-09-06 12:16:26 +00:00
Benjamin Kramer
7155f79983
It's a bool, so treat it like one. Fixes a MSVC warning.
...
llvm-svn: 81112
2009-09-06 12:10:17 +00:00
Duncan Sands
4b92376ba8
Tweak code into an equivalent form for which icc
...
doesn't warn about unreachable instructions. Patch
by Erick Tryzelaar (#111 ).
llvm-svn: 81110
2009-09-06 10:53:22 +00:00
Benjamin Kramer
ff8022c220
Remove splint hints to silence warnings from ICC and MSVC.
...
llvm-svn: 81108
2009-09-06 09:29:39 +00:00
Duncan Sands
750b1f5de2
Public and private corrections, warned about by icc ( #304 ).
...
Patch by Erick Tryzelaar.
llvm-svn: 81107
2009-09-06 08:55:57 +00:00
Duncan Sands
10c1356bad
Remove some unused variables and methods warned about by
...
icc (#177 , partial). Patch by Erick Tryzelaar.
llvm-svn: 81106
2009-09-06 08:33:48 +00:00
Daniel Dunbar
4d822b9da3
Fix a possible crash call setIsInBounds.
...
- I think there are more instances of this, but I think they are fixed in Dan's
incoming patch. This one was preventing me from doing a bugpoint reduction
though.
llvm-svn: 81103
2009-09-06 02:31:36 +00:00
Evan Cheng
a191202da5
Revert r80926. It causes loop unswitch assertion and slow down some JIT tests significantly.
...
llvm-svn: 81101
2009-09-06 02:26:10 +00:00
Daniel Dunbar
452643b58c
Revert "Include optional subclass flags, such as inbounds, nsw, etc., ...", this
...
breaks MiniSAT on x86_64.
llvm-svn: 81098
2009-09-06 00:11:24 +00:00
Devang Patel
7b422c1956
Detect VLAs.
...
Do not use DenseMap operator[] because it inserts new entry if lookup fails. Use find() to check an entry in a DenseMap first.
llvm-svn: 81058
2009-09-05 00:34:14 +00:00
Devang Patel
c174e064b2
Ignore malformed global variable debug info.
...
llvm-svn: 81055
2009-09-04 23:59:07 +00:00
Devang Patel
40a0a72be8
While replacing an MDNode elment, properly update MDNode's operand list.
...
MDNode's operand list does not include all elements.
llvm-svn: 81045
2009-09-04 21:32:05 +00:00
Andreas Neustifter
bba38af145
Prevent warnings on compilers for which its not clear that assert won't return.
...
llvm-svn: 81044
2009-09-04 21:22:04 +00:00
Lang Hames
e504e61ab5
Replaces uses of unsigned for indexes in LiveInterval and VNInfo with
...
a new class, MachineInstrIndex, which hides arithmetic details from
most clients. This is a step towards allowing the register allocator
to update/insert code during allocation.
llvm-svn: 81040
2009-09-04 20:41:11 +00:00
Andreas Neustifter
a956e23520
Cleaned up ProfileVerifierPass.
...
(See http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20090831/086219.html )
llvm-svn: 81007
2009-09-04 17:15:10 +00:00
Andreas Neustifter
548db47ff4
Converted MaximumSpanningTree algorithm to a generic template, this could go
...
into llvm/ADT.
llvm-svn: 81001
2009-09-04 12:34:44 +00:00
Dan Gohman
8b386a0b63
Include optional subclass flags, such as inbounds, nsw, etc., in the
...
Constant uniquing tables. This allows distinct ConstantExpr objects
with the same operation and different flags.
Even though a ConstantExpr "a + b" is either always overflowing or
never overflowing (due to being a ConstantExpr), it's still necessary
to be able to represent it both with and without overflow flags at
the same time within the IR, because the safety of the flag may
depend on the context of the use. If the constant really does overflow,
it wouldn't ever be safe to use with the flag set, however the use
may be in code that is never actually executed.
This also makes it possible to merge all the flags tests into a single test.
llvm-svn: 80998
2009-09-04 12:08:11 +00:00
Duncan Sands
2037ffaa73
Use delete[] to match new[] (found by valgrind).
...
llvm-svn: 80997
2009-09-04 11:59:43 +00:00
Evan Cheng
46e40befe7
Run branch folding if if-converter make some transformations.
...
llvm-svn: 80994
2009-09-04 07:47:40 +00:00
Evan Cheng
284b38aaa7
Fix comment for consistency sake.
...
llvm-svn: 80993
2009-09-04 07:46:30 +00:00
Jim Grosbach
5a21028ece
Whitespace cleanup
...
llvm-svn: 80978
2009-09-04 01:38:51 +00:00
Eric Christopher
a1d56b83f9
If there's a calling convention attach it to the rewind function call.
...
llvm-svn: 80976
2009-09-04 01:14:14 +00:00
Evan Cheng
86e6ec85a3
Funky indentation.
...
llvm-svn: 80971
2009-09-03 23:54:22 +00:00