Chris Lattner
7a4a29f89a
minor cleanups
...
llvm-svn: 101151
2010-04-13 17:39:09 +00:00
Chris Lattner
a06794201d
Teach HasSideEffect about InitListExprs. Not having
...
this caused us to codegen dead globals like this:
struct foo { int a; int b; };
static struct foo fooarray[] = {
{1, 2},
{4},
};
llvm-svn: 101150
2010-04-13 17:34:23 +00:00
Chris Lattner
8d269dc329
make the rewriter add a #ifndef around the #define of __attribute__.
...
Without it, there is no reason for a compiler that supports it to
emit the dead static globals that the rewriter labels attribute(used).
llvm-svn: 101149
2010-04-13 17:33:56 +00:00
Dan Gohman
8a2dae57e2
Add a few comments.
...
llvm-svn: 101148
2010-04-13 17:07:06 +00:00
Dan Gohman
9d2d053e11
Eliminate MachineBasicBlock::const_livein_iterator and make
...
MachineBasicBlock::livein_iterator a const_iterator, because
clients shouldn't ever be using the iterator interface to
mutate the livein set.
llvm-svn: 101147
2010-04-13 16:57:55 +00:00
Dan Gohman
dcacef3188
Rename MachineFrameInfo variables to MFI, for consistency with
...
the rest of CodeGen.
llvm-svn: 101146
2010-04-13 16:56:45 +00:00
Dan Gohman
6b1b1e4358
Move MachineRegisterInfo's isLiveIn and isLiveOut out of line.
...
llvm-svn: 101145
2010-04-13 16:55:37 +00:00
Dan Gohman
a1cf9fef70
Use MachineBasicBlock::isLiveIn.
...
llvm-svn: 101144
2010-04-13 16:53:51 +00:00
Dan Gohman
39305067ad
Delete an unused member variable.
...
llvm-svn: 101143
2010-04-13 16:51:39 +00:00
Dan Gohman
7ef0dc2163
Teach ScalarEvolution to simplify smax and umax when it can prove
...
that one operand is always greater than another.
llvm-svn: 101142
2010-04-13 16:51:03 +00:00
Dan Gohman
fe4b29180b
Minor code micro-optimizations.
...
llvm-svn: 101141
2010-04-13 16:49:23 +00:00
Eric Christopher
4016dcd625
Actually... return after the check for invalid input.
...
llvm-svn: 101139
2010-04-13 16:41:29 +00:00
Benjamin Kramer
55cfaa37de
BumpPtrAllocator::Reset() doesn't need to allocate anything. (Thanks, Jakob)
...
llvm-svn: 101138
2010-04-13 16:38:06 +00:00
Douglas Gregor
38ae6ab6bc
Refactor and simplify the computation of implicit conversion sequences
...
for reference binding. The code attempted to handle both the
computation of the ICS and the actual conversion, but the latter is an
anachronism: we now use InitializationSequence for that.
Sema::CheckReferenceInit is now a static function TryReferenceInit
that's only use within overload resolution, and has been simplified
slightly. It still needs to be updated per C++ [over.ics.ref], by
eliminating more of the lvalue/rvalue checks.
llvm-svn: 101136
2010-04-13 16:31:36 +00:00
Douglas Gregor
e5e775bc8e
When returning the result of a call to an object of class type, do not
...
return a NULL expression; return either an error or a proper
expression. Fixes PR6078.
llvm-svn: 101133
2010-04-13 15:50:39 +00:00
Douglas Gregor
538be4622c
During referencing binding, only consider conversion functions for
...
direct reference binding when the source and target types are not
reference-related. Fixes PR6066.
llvm-svn: 101132
2010-04-13 15:07:45 +00:00
Benjamin Kramer
5d8eb779d5
Update unittest for allocator laziness.
...
llvm-svn: 101131
2010-04-13 15:01:26 +00:00
Benjamin Kramer
5b0650bf6e
Let BumpPtrAllocator lazily allocate the first slab.
...
We have some code in llvm and clang where a BumpPtrAllocator is declared in a
class but never used in the common case. Stop wasting memory there.
llvm-svn: 101130
2010-04-13 14:41:51 +00:00
Zhongxing Xu
17b33ed0cf
Make all cases that we don't handle explicit.
...
llvm-svn: 101129
2010-04-13 13:15:19 +00:00
Zhongxing Xu
b6f02c3d67
Dispatch all C++ cast expr to VisitCast().
...
llvm-svn: 101128
2010-04-13 12:38:32 +00:00
Zhongxing Xu
7e61217d86
CFGBuilder: always add C++ member call expr as block-level expr.
...
llvm-svn: 101127
2010-04-13 09:38:01 +00:00
Owen Anderson
b516f1c6cc
Remove SCCVN from the CMake build system.
...
llvm-svn: 101125
2010-04-13 08:33:09 +00:00
John McCall
43314ab3ae
Allow classes to befriend implicitly-declared members. Fixes PR6207 for
...
members of non-templated classes.
llvm-svn: 101122
2010-04-13 07:45:41 +00:00
Zhongxing Xu
7d4bc9a106
Add a cc1 option to specify the max number of nodes the analyzer can explore.
...
llvm-svn: 101120
2010-04-13 06:44:31 +00:00
John McCall
84821e7143
Parse constructor names in friend declarations. Part of the fix for
...
PR6207.
llvm-svn: 101119
2010-04-13 06:39:49 +00:00
Chris Lattner
069711865f
checkpoint.
...
llvm-svn: 101118
2010-04-13 06:37:00 +00:00
Owen Anderson
9ed6abfe0b
SCCVN, we hardly knew ye!
...
llvm-svn: 101117
2010-04-13 05:24:08 +00:00
Chris Lattner
33154c1fc6
Fix PR6826: GraphWriter delete the generated file before "dotty" load it,
...
patch by 'ether'.
llvm-svn: 101116
2010-04-13 04:35:39 +00:00
Fariborz Jahanian
33eb59a61b
Remove this test for now until I can figure out
...
why it keeps failing on buildbot (but not for me).
llvm-svn: 101115
2010-04-13 02:16:35 +00:00
Bob Wilson
af7674cbd4
Replace r101053 with a fix for getSOImmValRotate() so that it will correctly
...
recognize all the valid rotated immediates. This fixes the disassembler
issue and will also help codegen for some unusual constant values.
llvm-svn: 101114
2010-04-13 02:11:48 +00:00
Dan Gohman
5867a56db8
Teach IndVarSimplify how to eliminate remainder operators where the
...
numerator is an induction variable. For example, with code like this:
for (i=0;i<n;++i)
x[i%n] = 0;
IndVarSimplify will now recognize that i is always less than n inside
the loop, and eliminate the remainder.
llvm-svn: 101113
2010-04-13 01:46:36 +00:00
John McCall
77e41c1cc6
Don't try to find a scope corresponding to the search DC for an unfound
...
friend declaration; this used to be important but is now just a waste of time
plus an unreasonable assertion. Fixes PR6174.
llvm-svn: 101112
2010-04-13 01:44:10 +00:00
Daniel Dunbar
d33749b4a9
VMCore: Add Type::getIntN[Ptr]Ty, which are the obvious generic forms of
...
Type::getInt{1,8,...}[Ptr]Ty, so code can consistently use the methods on Type
without occasionally needed to call IntegerType::get.
llvm-svn: 101111
2010-04-13 01:39:07 +00:00
Daniel Dunbar
e0a355af5d
IRBuilder: Add Create{Shl,LShr,And,Or,Xor} methods from uin64_t and APInt constants.
...
llvm-svn: 101110
2010-04-13 01:38:57 +00:00
Fariborz Jahanian
cb21e38dc5
Modify test to be darwin specific.
...
llvm-svn: 101109
2010-04-13 01:10:57 +00:00
Chris Lattner
dc6040b357
add frontend support for -fdata-sections and -ffunction-sections,
...
patch by Sylvere Teissier!
llvm-svn: 101108
2010-04-13 00:38:24 +00:00
Fariborz Jahanian
08b0f66d2e
Add support for objc_copyStruct to enforce
...
atomicity of aggregate properties in setter/getter
methods. wip.
llvm-svn: 101107
2010-04-13 00:38:05 +00:00
Chris Lattner
5b212a31a2
add llvm codegen support for -ffunction-sections and -fdata-sections,
...
patch by Sylvere Teissier!
llvm-svn: 101106
2010-04-13 00:36:43 +00:00
Devang Patel
74c10507a6
Fix debug info for cleanup block.
...
llvm-svn: 101100
2010-04-13 00:08:43 +00:00
Chris Lattner
9d94f04f27
cache the PP's SourceManager.
...
llvm-svn: 101099
2010-04-13 00:06:42 +00:00
John McCall
212fa2efb7
Diagnose declarations of conversion functions with declarators other than '()'.
...
llvm-svn: 101098
2010-04-13 00:04:31 +00:00
Chris Lattner
5dbefc6697
make the preprocessor listen to linemarker directives in -E mode,
...
PR6101. This is based on a patch and testcase by Jordy Rose!
llvm-svn: 101097
2010-04-13 00:01:41 +00:00
Sean Callanan
d75c8a0813
Build system fix to make llvm-mc properly build
...
after edis. Really, there ought to be some
mechanism to ensure that PARALLEL_DIRS get built
after DIRS.
llvm-svn: 101095
2010-04-12 23:55:28 +00:00
Douglas Gregor
b3cdaee190
Remove some dead FIXMEs
...
llvm-svn: 101092
2010-04-12 23:52:24 +00:00
Douglas Gregor
2c326bce38
Implement C++ [over.ics.user]p3, which restricts the final conversion
...
from a conversion function template specialization to one of exact
match rank. We only know how to test this in C++0x with default
function template arguments, but it's also in the C++03 spec. Fixes
PR6285.
llvm-svn: 101089
2010-04-12 23:42:09 +00:00
Douglas Gregor
5c0066f1cf
Improve source-location information for C++ conversion functions, by
...
copying the type location information from the conversion-type-id into
the type location information for the function type. Do something
similar for constructors and destructors, by giving their "void"
return type source-location information.
In all of these cases, we previously left this type-source information
uninitialized, which led to various unfortunate crashes.
We still aren't tracking good source-location information for the
actual names. That's PR6357.
John, please check my sanity on this.
llvm-svn: 101088
2010-04-12 23:19:01 +00:00
Dan Gohman
ebbd05f8ce
Micro-optimize a few hot spots.
...
llvm-svn: 101086
2010-04-12 23:08:18 +00:00
Evan Cheng
d0d8e3343a
Use .set expression for x86 pic jump table reference to reduce assembly relocation. rdar://7738756
...
llvm-svn: 101085
2010-04-12 23:07:17 +00:00
Chris Lattner
1a9e873bf9
fix a minor bug I noticed while work with Jordy's patch for PR6101,
...
in an input file like this:
# 42
int x;
we were emitting:
# <something>
int x;
(with a space before the int) because we weren't clearing the leading
whitespace flag properly after the \n from the directive was handled.
llvm-svn: 101084
2010-04-12 23:04:41 +00:00
Dan Gohman
11862a6ed3
Add fast paths to ScalarEvolution::getSizeOf and getOffsetOf, as
...
they're used a lot by getNodeForGEP, which can be called a lot.
This speeds up -iv-users by around 15% on several testcases.
llvm-svn: 101083
2010-04-12 23:03:26 +00:00