Mikhail Glushenkov
5c35d2f6a4
Fix a warning on gcc 4.4.
...
SelectionDAGBuilder.cpp:4294: warning: suggest explicit braces to avoid
ambiguous ‘else’
llvm-svn: 92395
2010-01-01 04:41:36 +00:00
Mikhail Glushenkov
2abe1b70ac
Trailing whitespace, 80-col violations.
...
llvm-svn: 92394
2010-01-01 04:41:22 +00:00
Mikhail Glushenkov
8a52b77523
Minor simplifactions.
...
llvm-svn: 92393
2010-01-01 04:41:10 +00:00
Mikhail Glushenkov
9b0afc36a8
Typo.
...
llvm-svn: 92392
2010-01-01 04:40:54 +00:00
Mikhail Glushenkov
c4f17987b6
Make CheckForSuperfluousOptions handle list form of 'switch_on' correctly.
...
llvm-svn: 92391
2010-01-01 03:51:02 +00:00
Mikhail Glushenkov
8711c8dbcf
Minor simplifications.
...
llvm-svn: 92390
2010-01-01 03:50:51 +00:00
Mikhail Glushenkov
554c054777
Better error message.
...
llvm-svn: 92389
2010-01-01 03:50:34 +00:00
Chris Lattner
39f18e545e
Teach codegen to lower llvm.powi to an efficient (but not optimal)
...
multiply sequence when the power is a constant integer. Before, our
codegen for std::pow(.., int) always turned into a libcall, which was
really inefficient.
This should also make many gfortran programs happier I'd imagine.
llvm-svn: 92388
2010-01-01 03:32:16 +00:00
Chris Lattner
5967840a5f
Make this more likely to generate a libcall.
...
llvm-svn: 92387
2010-01-01 03:26:51 +00:00
Mike Stump
9d44fdb397
Fix last patch, catch of reference to non-pointer.
...
llvm-svn: 92386
2010-01-01 03:20:32 +00:00
Mike Stump
5ee041873b
Fix catching a reference to a pointer.
...
llvm-svn: 92385
2010-01-01 02:51:52 +00:00
Chris Lattner
ee1f861d81
add missing line.
...
llvm-svn: 92384
2010-01-01 01:54:08 +00:00
Chris Lattner
8330daf733
add a few trivial instcombines for llvm.powi.
...
llvm-svn: 92383
2010-01-01 01:52:15 +00:00
Chris Lattner
71cf7c256f
update this. To take the next step, llvm.powi should be generalized to work
...
on integers as well and codegen should lower them to branch trees.
llvm-svn: 92382
2010-01-01 01:29:26 +00:00
Chris Lattner
0c59ac3f41
When factoring multiply expressions across adds, factor both
...
positive and negative forms of constants together. This
allows us to compile:
int foo(int x, int y) {
return (x-y) + (x-y) + (x-y);
}
into:
_foo: ## @foo
subl %esi, %edi
leal (%rdi,%rdi,2), %eax
ret
instead of (where the 3 and -3 were not factored):
_foo:
imull $-3, 8(%esp), %ecx
imull $3, 4(%esp), %eax
addl %ecx, %eax
ret
this started out as:
movl 12(%ebp), %ecx
imull $3, 8(%ebp), %eax
subl %ecx, %eax
subl %ecx, %eax
subl %ecx, %eax
ret
This comes from PR5359.
llvm-svn: 92381
2010-01-01 01:13:15 +00:00
Chris Lattner
2f03e64094
test case we alredy get right.
...
llvm-svn: 92380
2010-01-01 00:50:00 +00:00
Douglas Gregor
2536398a5d
When typo correction for an id-expression finds a type (or Objective-C
...
class), provide a suggestion for the type or class found. However,
since we can't recover properly in this case, don't provide a fix-it
hint. Example:
test/FixIt/typo.m:8:3: error: use of undeclared identifier 'NSstring';
did you
mean 'NSString'?
NSstring *str = @"A string";
...
^
1 diagnostic generated.
llvm-svn: 92379
2010-01-01 00:15:04 +00:00
Ted Kremenek
504b7f8cc4
Remove old header.
...
llvm-svn: 92378
2010-01-01 00:04:49 +00:00
Chris Lattner
a552683fd4
clean up some comments.
...
llvm-svn: 92377
2010-01-01 00:04:26 +00:00
Douglas Gregor
4e0299b657
Typo correction for C99 designated field initializers, e.g.,
...
test/FixIt/typo.c:19:4: error: field designator 'bunds' does not refer to any
field in type 'struct Window'; did you mean 'bounds'?
.bunds.
^~~~~
bounds
llvm-svn: 92376
2010-01-01 00:03:05 +00:00
Chris Lattner
17229a7cb8
switch from std::map to DenseMap for rank data structures.
...
llvm-svn: 92375
2010-01-01 00:01:34 +00:00
Ted Kremenek
2fdca4b720
Remove derelict serialization code.
...
llvm-svn: 92374
2009-12-31 23:40:17 +00:00
Chris Lattner
fed3397654
reuse negates where possible instead of always creating them from scratch.
...
This allows us to optimize test12 into:
define i32 @test12(i32 %X) {
%factor = mul i32 %X, -3 ; <i32> [#uses=1]
%Z = add i32 %factor, 6 ; <i32> [#uses=1]
ret i32 %Z
}
instead of:
define i32 @test12(i32 %X) {
%Y = sub i32 6, %X ; <i32> [#uses=1]
%C = sub i32 %Y, %X ; <i32> [#uses=1]
%Z = sub i32 %C, %X ; <i32> [#uses=1]
ret i32 %Z
}
llvm-svn: 92373
2009-12-31 20:34:32 +00:00
Chris Lattner
60c2ca743d
we don't need a smallptrset to detect duplicates, the values are
...
sorted, so we can just do a linear scan.
llvm-svn: 92372
2009-12-31 19:49:01 +00:00
Anders Carlsson
2d21394190
If the key function of a record is inline, then the RTTI data should have weak_odr linkage.
...
llvm-svn: 92371
2009-12-31 19:36:25 +00:00
Chris Lattner
1d8979422a
make reassociate more careful about not leaving around dead mul's
...
llvm-svn: 92370
2009-12-31 19:34:45 +00:00
Chris Lattner
ed18917665
remove debug
...
llvm-svn: 92369
2009-12-31 19:25:19 +00:00
Chris Lattner
60b71b5c4d
teach reassociate to factor x+x+x -> x*3. While I'm at it,
...
fix RemoveDeadBinaryOp to actually do something.
llvm-svn: 92368
2009-12-31 19:24:52 +00:00
Anders Carlsson
0c9dd8476f
It's OK for a return type to be incomplete if it's being defined.
...
llvm-svn: 92367
2009-12-31 18:54:35 +00:00
Chris Lattner
38abecbad0
change reassociate to use SmallVector for its key datastructures
...
instead of std::vector.
llvm-svn: 92366
2009-12-31 18:40:32 +00:00
Anders Carlsson
e60365b7b5
Make sure that an overriding return type is complete before checking if it's covariant. Fixes PR5920.
...
llvm-svn: 92365
2009-12-31 18:34:24 +00:00
Chris Lattner
ac61550504
change an if to an assert, fix comment.
...
llvm-svn: 92364
2009-12-31 18:18:46 +00:00
Chris Lattner
177140ad12
move the rest of the add optimization code out to OptimizeAdd,
...
improve some comments, simplify a bit of code.
llvm-svn: 92363
2009-12-31 18:17:13 +00:00
Chris Lattner
ba1f36aa99
factor statistic updating better.
...
llvm-svn: 92362
2009-12-31 17:51:05 +00:00
Anders Carlsson
bc7def9850
Remove rtti.cpp, it's very fragile and has been marked XFAIL for a while now. Between rtti-layout.cpp and rtti-linkage.cpp, RTTI testing should be covered.
...
llvm-svn: 92361
2009-12-31 17:44:32 +00:00
Anders Carlsson
7ae81bb711
More RTTI builder cleanup.
...
llvm-svn: 92360
2009-12-31 17:43:53 +00:00
Benjamin Kramer
738800dd1d
Silence compiler warning.
...
warning: comparison between signed and unsigned integer expressions
llvm-svn: 92359
2009-12-31 16:27:13 +00:00
Benjamin Kramer
d77adb5b1c
Avoid an unnecessary copy of Predefines. getMemBufferCopy does the null termination for us.
...
llvm-svn: 92358
2009-12-31 15:33:09 +00:00
Benjamin Kramer
14488464be
Convert to StringRef, avoid a memcpy in the common case.
...
llvm-svn: 92357
2009-12-31 13:32:38 +00:00
Douglas Gregor
15e77a2fd3
Typo correction for C++ base and member initializers, e.g.,
...
test/FixIt/typo.cpp:41:15: error: initializer 'base' does not name a non-static
data member or base class; did you mean the base class 'Base'?
Derived() : base(),
^~~~
Base
test/FixIt/typo.cpp:42:15: error: initializer 'ember' does not name a non-static
data member or base class; did you mean the member 'member'?
ember() { }
^~~~~
member
llvm-svn: 92355
2009-12-31 09:10:24 +00:00
Chris Lattner
4e3a5678af
simple fix for an incorrect factoring which causes a
...
miscompilation, PR5458.
llvm-svn: 92354
2009-12-31 08:33:49 +00:00
Chris Lattner
2d3b53a68c
merge some more tests in.
...
llvm-svn: 92353
2009-12-31 08:32:22 +00:00
Chris Lattner
19a4baa201
filecheckize
...
llvm-svn: 92352
2009-12-31 08:29:56 +00:00
Douglas Gregor
103dae42d7
Add another typo test for nested-name-specifiers
...
llvm-svn: 92351
2009-12-31 08:27:32 +00:00
Douglas Gregor
532e68f1f3
Typo correction for identifiers within nested name specifiers, e.g.,
...
typo.cpp:18:1: error: use of undeclared identifier 'other_std'; did
you mean 'otherstd'?
other_std::strng str1;
^~~~~~~~~
otherstd
llvm-svn: 92350
2009-12-31 08:26:35 +00:00
Chris Lattner
d5bace7092
fix refactoro
...
llvm-svn: 92349
2009-12-31 08:23:09 +00:00
Douglas Gregor
ff18cc1141
Typo correction for template names, e.g.,
...
typo.cpp:27:8: error: no template named 'basic_sting' in namespace 'std';
did you mean 'basic_string'?
std::basic_sting<char> b2;
~~~~~^~~~~~~~~~~
basic_string
llvm-svn: 92348
2009-12-31 08:11:17 +00:00
Chris Lattner
5f8a005d38
factor code out into helper functions.
...
llvm-svn: 92347
2009-12-31 07:59:34 +00:00
Chris Lattner
f5c2b8b8d7
switch some std::vector's to smallvector. Reduce nesting.
...
llvm-svn: 92346
2009-12-31 07:48:51 +00:00
Douglas Gregor
af2bd473d2
Typo correction for member access into classes/structs/unions, e.g.,
...
s.fnd("hello")
llvm-svn: 92345
2009-12-31 07:42:17 +00:00