Dan Gohman
56998cdc5b
Add a testcase for the recent duplicate PHI elimination changes.
...
llvm-svn: 85636
2009-10-30 23:16:10 +00:00
Dan Gohman
7f7d97eb73
Add a comment about a missed opportunity.
...
llvm-svn: 85635
2009-10-30 23:15:43 +00:00
Dan Gohman
5bec30ca5d
Optimize around the fact that pred_iterator is slow: instead of sorting
...
PHI operands by the predecessor order, sort them by the order used by the
first PHI in the block. This is still suffucient to expose duplicates.
llvm-svn: 85634
2009-10-30 23:15:21 +00:00
Douglas Gregor
326b2fa03e
Fix a crazy canonical-types bug because canonicalizing a
...
dependently-sized array type with a given expression might end up
returning a non-canonical type; see through that non-canonical type to
the underlying canonical type. Yes, I have a test case; no, I can't
reduce it to the point where it's worth checking in :(
llvm-svn: 85633
2009-10-30 22:56:57 +00:00
Kevin Enderby
8be42bd09f
Updates to the ARM target assembler for llvm-mc per review comments from
...
Daniel Dunbar.
- Reordered the fields in the ARMOperand Mem struct to make the struct smaller.
Making bool's into 1 bit fields and put the MCExpr* fields adjacent to each
other.
- Fixed a number of places in ARMAsmParser.cpp so they have doxygen comments.
- Change the name of ARMAsmParser::ParseRegister() to MaybeParseRegister and
added the bool ParseWriteBack parameter.
- Changed ARMAsmParser::ParseMemory() to call MaybeParseRegister().
- Added ARMAsmParser::ParseMemoryOffsetReg to factor out parsing the offset of a
memory operand. And use it for both parsing both preindexed and post indexing
addressing forms in ARMAsmParser::ParseMemory.
- Changed the first argument to ParseShift() to a reference.
- Changed ParseShift() to check for Rrx first and return to reduce nesting.
llvm-svn: 85632
2009-10-30 22:55:57 +00:00
Devang Patel
072b31a0bf
If string field is empty then return NULL.
...
llvm-svn: 85630
2009-10-30 22:52:47 +00:00
Douglas Gregor
62b885d43c
When looking for a copy-assignment operator to determine the cv-qualifiers on its argument type, ignore assignment operator templates
...
llvm-svn: 85629
2009-10-30 22:48:49 +00:00
Douglas Gregor
bb3b46eb74
When a friend is declared in a dependent context, don't even try to
...
match it up with a declaration in the outer scope.
llvm-svn: 85628
2009-10-30 22:42:42 +00:00
Chris Lattner
dd5d035302
if basic blocks are destroyed while there are *just* BlockAddress' hanging
...
around, then zap them. This is analogous to dangling constantexprs hanging
off functions.
llvm-svn: 85627
2009-10-30 22:39:36 +00:00
Dan Gohman
1a95106602
Teach SimplifyCFG how to eliminate duplicate PHI nodes within a block.
...
This reduces codesize on a variety of codes by 1-2% on x86-64. It also
helps clean up after SSAUpdater.
llvm-svn: 85626
2009-10-30 22:39:04 +00:00
Chris Lattner
74eb5d71a3
make hasAddressTaken() constant time by storing a refcount in BB's subclass data.
...
llvm-svn: 85625
2009-10-30 22:33:29 +00:00
Bob Wilson
c7415bf536
Add a note about Robert Muth's alternate jump table implementation.
...
llvm-svn: 85624
2009-10-30 22:22:46 +00:00
Dan Gohman
13e41edc71
Sort the incoming values in PHI nodes to match the predecessor order.
...
This helps expose duplicate PHIs, which will make it easier for them
to be eliminated.
llvm-svn: 85623
2009-10-30 22:22:22 +00:00
Dan Gohman
49fa51d936
Fix MachineLICM to use the correct virtual register class when
...
unfolding loads for hoisting. getOpcodeAfterMemoryUnfold returns the
opcode of the original operation without the load, not the load
itself, MachineLICM needs to know the operand index in order to get
the correct register class. Extend getOpcodeAfterMemoryUnfold to
return this information.
llvm-svn: 85622
2009-10-30 22:18:41 +00:00
Chris Lattner
112caed500
it isn't valid to take the address of the entry block.
...
llvm-svn: 85621
2009-10-30 22:15:48 +00:00
Douglas Gregor
1d0015f8e1
Improved fix for PR3844, which recovers better for class template
...
partial specializations and explicit instantiations of non-templates.
llvm-svn: 85620
2009-10-30 22:09:44 +00:00
Devang Patel
13cb281013
If a type is derived from a derived type then calculate size appropriately.
...
llvm-svn: 85619
2009-10-30 22:09:30 +00:00
Ted Kremenek
5c2040b182
Tighten computation of ExprVal using ?: expression. No functionality change.
...
llvm-svn: 85618
2009-10-30 22:01:29 +00:00
Douglas Gregor
916462b2f7
Improve diagnostics when parsing something like
...
template<> struct foo<int> { ... };
where "foo" does not refer to a template. Fixes PR3844.
llvm-svn: 85616
2009-10-30 21:46:58 +00:00
Jim Grosbach
95e6e933ed
Build in ARM mode explicitly when on ARM Darwin
...
llvm-svn: 85615
2009-10-30 21:33:05 +00:00
Daniel Dunbar
4759a8979c
Add missing substitution for %llvmgcc_only.
...
llvm-svn: 85614
2009-10-30 21:13:59 +00:00
Douglas Gregor
412e8bc56d
Instantiate class template friends better; fixes PR5332.
...
llvm-svn: 85612
2009-10-30 21:07:27 +00:00
Jim Grosbach
dc916f11b5
Allow cross target build
...
llvm-svn: 85611
2009-10-30 20:54:59 +00:00
Bob Wilson
6b00f4b7a8
Fix a comment.
...
llvm-svn: 85610
2009-10-30 20:13:25 +00:00
Evan Cheng
5a6b9c40d6
Add option to createGVNPass to disable PRE.
...
llvm-svn: 85609
2009-10-30 20:12:24 +00:00
Evan Cheng
28f052fc89
I forgot to commit this test.
...
llvm-svn: 85608
2009-10-30 20:03:40 +00:00
Jim Grosbach
885fdd378a
When cross-building, the CFLAGS and CXXFLAGS are for the target, and don't
...
apply to the build tools. If we want to allow build tool flags input, we
should have separate inputs (BUILD_CFLAGS and BUILD_CXXFLAGS, perhaps).
llvm-svn: 85607
2009-10-30 19:53:38 +00:00
Jim Grosbach
b2dfe8b19a
Remove extraneous comment line
...
llvm-svn: 85606
2009-10-30 19:52:05 +00:00
Jim Grosbach
ad637e9564
update name check for Apple style builds to be more permissive
...
llvm-svn: 85605
2009-10-30 19:51:32 +00:00
Daniel Dunbar
f3355a61c4
Remove clang-cc code for handling -mmacosx-version-min and
...
-miphoneos-version-min.
llvm-svn: 85601
2009-10-30 18:12:31 +00:00
Daniel Dunbar
624c21b029
Change the driver to do the Darwin triple mangling itself instead of forwarding
...
-mmacosx-version-min and -miphoneos-version-min to clang-cc.
llvm-svn: 85600
2009-10-30 18:12:20 +00:00
Lang Hames
94966ca926
Stop the iterator in ValueLiveAt from potentially running off the end of the interval.
...
llvm-svn: 85599
2009-10-30 18:12:09 +00:00
John McCall
edf97c4b02
Finally suppress a compiler warning from gcc on release-asserts. Also fixes
...
a crash on <vector> in same, which bears additional investigation.
llvm-svn: 85598
2009-10-30 17:53:18 +00:00
Ted Kremenek
6f2a705a24
Make checkers run in deterministic order.
...
llvm-svn: 85597
2009-10-30 17:47:32 +00:00
Ted Kremenek
89f5c189db
Move NullDerefChecker.h instead a 'Checkers' subdirectory.
...
llvm-svn: 85596
2009-10-30 17:28:40 +00:00
Ted Kremenek
f613e89617
Move all logic for the null dereference checker from GRExprEngineInternalChecks.cpp to a separate .cpp file.
...
llvm-svn: 85595
2009-10-30 17:24:47 +00:00
Douglas Gregor
f329c7c3c0
Include macros in code-completion results
...
llvm-svn: 85594
2009-10-30 16:50:04 +00:00
Benjamin Kramer
53ba5f21ff
Doug says this is medium done.
...
llvm-svn: 85592
2009-10-30 14:54:38 +00:00
Benjamin Kramer
c1dea5dded
cxx_status: fix some missing/wrong cells.
...
llvm-svn: 85591
2009-10-30 14:41:58 +00:00
Rafael Espindola
ab7c709f43
This fixes functions like
...
void f (int a1, int a2, int a3, int a4, int a5,...)
In ARMTargetLowering::LowerFormalArguments if the function has 4 or
more regular arguments we used to set VarArgsFrameIndex using an
offset of 0, which is only correct if the function has exactly 4
regular arguments.
llvm-svn: 85590
2009-10-30 14:33:14 +00:00
John Thompson
b535352681
Re-arranged some internal functions for coming __has_include changes.
...
llvm-svn: 85589
2009-10-30 13:49:06 +00:00
Benjamin Kramer
305f9f8fed
Add C++ include paths for Exherbo. Patch by Daniel Mierswa!
...
llvm-svn: 85588
2009-10-30 12:57:13 +00:00
Oscar Fuentes
15716f6e26
CMake: install .def files from source `include/llvm' directory.
...
llvm-svn: 85587
2009-10-30 11:42:08 +00:00
Evan Cheng
484dba893c
Rather than having llvm-gcc changing the meaning of OptimizeSize, just make sure loop unswitch is conservative when optimization level is < 3.
...
llvm-svn: 85581
2009-10-30 07:23:49 +00:00
Zhongxing Xu
b9eda67380
Fix PR5316: make assignment expressions can be visited as lvalue. Then we
...
can get the correct base lvalue.
Revert r85578.
llvm-svn: 85579
2009-10-30 07:19:39 +00:00
Ted Kremenek
e96a30a531
Handle loading of field values from LazyCompoundVals in GRExprEngine::VisitMemberExpr().
...
This fixes the crash reported in PR 5316.
llvm-svn: 85578
2009-10-30 05:48:30 +00:00
Bob Wilson
1cf0b03064
Add ARM codegen for indirect branches.
...
clang/test/CodeGen/indirect-goto.c runs! (unoptimized)
llvm-svn: 85577
2009-10-30 05:45:42 +00:00
Chris Lattner
252d36e74c
warn about returning the address of a label.
...
llvm-svn: 85576
2009-10-30 04:01:58 +00:00
Dan Gohman
b0cad70c24
Most stack straces don't need 3 digits worth of levels.
...
llvm-svn: 85575
2009-10-30 02:45:10 +00:00
Anders Carlsson
32e1b1c169
Get throws limping along, still a bunch of FIXMEs. Too bad we don't support catching anything yet :)
...
llvm-svn: 85574
2009-10-30 02:27:02 +00:00