Benjamin Kramer
a43ad3ddbd
Update CMakeLists.
...
llvm-svn: 80669
2009-09-01 10:24:10 +00:00
Andreas Neustifter
eb5a9d34d6
Preparation for Optimal Edge Profiling:
...
Add statistics for regular edge profiling, this enables the comparation of the
number of edges inserted by regular and optimal edge profiling.
llvm-svn: 80668
2009-09-01 10:08:39 +00:00
Andreas Neustifter
8bcd5dcf5d
Preparation for Optimal Edge Profiling:
...
Optimal edge profiling is only possible when blocks with no predecessors get an
virtual edge (BB,0) that counts the execution frequencies of this
function-exiting blocks.
This patch makes the necessary changes before actually enabling optimal edge profiling.
llvm-svn: 80667
2009-09-01 10:06:05 +00:00
Andreas Neustifter
b683b6e2ce
Preparation for Optimal Edge Profiling:
...
This adds a pass to verify the current profile against the flow conditions.
This is very helpful when later on trying to perserve the profiling information
during all passes.
llvm-svn: 80666
2009-09-01 08:48:42 +00:00
Chris Lattner
026e34c4f7
testcase for PR3601
...
llvm-svn: 80664
2009-09-01 06:33:49 +00:00
Chris Lattner
063d06527e
Change CallGraphNode to maintain it's Function as an AssertingVH
...
for sanity. This didn't turn up any bugs.
Change CallGraphNode to maintain its "callsite" information in the
call edges list as a WeakVH instead of as an instruction*. This fixes
a broad class of dangling pointer bugs, and makes CallGraph have a number
of useful invariants again. This fixes the class of problem indicated
by PR4029 and PR3601.
llvm-svn: 80663
2009-09-01 06:31:31 +00:00
Anders Carlsson
bcec05c9fd
Don't assume that a base is always a RecordType, it can also be a TemplateSpecializationType. Also, make sure to get the instantiated union member.
...
llvm-svn: 80662
2009-09-01 06:22:14 +00:00
Anders Carlsson
62215c4fb5
Add pretty stack traces when instantiating functions and static data members.
...
llvm-svn: 80661
2009-09-01 05:12:24 +00:00
Devang Patel
aa57e1085e
Add virtual destructor.
...
llvm-svn: 80660
2009-09-01 05:04:28 +00:00
Anders Carlsson
17dc7e2007
Handle member initializers that point to fields in anonymous structs.
...
llvm-svn: 80659
2009-09-01 04:31:02 +00:00
Bob Wilson
ff69320427
Add test for vld{234}_lane instructions.
...
llvm-svn: 80658
2009-09-01 04:27:10 +00:00
Anders Carlsson
5da848427a
Don't assert when instantiating member references to fields in anonymous structs.
...
llvm-svn: 80657
2009-09-01 04:26:58 +00:00
Bob Wilson
da9817cddd
Generate code for vld{234}_lane intrinsics.
...
llvm-svn: 80656
2009-09-01 04:26:28 +00:00
Eli Friedman
1c277d0fe8
PR4836, part 2: CodeGen for __builtin_isnan.
...
llvm-svn: 80655
2009-09-01 04:19:44 +00:00
Bob Wilson
33b408a10f
Fix pr4843: When an instruction has multiple destination registers that are
...
tied to different source registers, the TwoAddressInstructionPass needs to
be smarter. Change it to check before replacing a source register whether
that source register is tied to a different destination register, and if so,
defer handling it until a subsequent iteration.
llvm-svn: 80654
2009-09-01 04:18:40 +00:00
Daniel Dunbar
4fa0595b94
llvm-mc: Store MCSymbolData value as a pointer (to make MSVC happy).
...
llvm-svn: 80652
2009-09-01 04:09:03 +00:00
Jim Grosbach
f09e8d5497
SJLJ is arm/darwin only for now. force the triple for the test
...
llvm-svn: 80651
2009-09-01 02:34:49 +00:00
Jim Grosbach
345a5ae6e4
Fix compiler warnings
...
llvm-svn: 80650
2009-09-01 02:05:03 +00:00
Jim Grosbach
20eac92d88
Clean up LSDA name generation and use for SJLJ exception handling. This
...
makes an eggregious hack somewhat more palatable. Bringing the LSDA forward
and making it a GV available for reference would be even better, but is
beyond the scope of what I'm looking to solve at this point.
Objective C++ code could generate function names that broke the previous
scheme. This fixes that.
llvm-svn: 80649
2009-09-01 01:57:56 +00:00
Devang Patel
b1bff47718
Introduce DILocation.
...
llvm-svn: 80648
2009-09-01 01:14:15 +00:00
Devang Patel
71b42f2d40
Add getDirectory() and getFilename() interface to DIScope.
...
llvm-svn: 80647
2009-09-01 00:53:21 +00:00
Douglas Gregor
84f14dd674
Preliminary AST representation and semantic analysis for
...
explicitly-specified template argument lists in member reference
expressions, e.g.,
x->f<int>()
llvm-svn: 80646
2009-09-01 00:37:14 +00:00
Daniel Dunbar
b1b2016b83
Force triple for this test (non-fragile ABI is default on x86_64-apple-darwin9).
...
llvm-svn: 80645
2009-09-01 00:36:20 +00:00
Ted Kremenek
3aff920676
Sentence-case bug category.
...
llvm-svn: 80644
2009-09-01 00:17:12 +00:00
Douglas Gregor
f4b34ba326
Remember to write the qualifier of a MemberExpr to the PCH file when we get to C++ PCH
...
llvm-svn: 80643
2009-08-31 23:44:04 +00:00
Douglas Gregor
f405d7e6f1
Eliminate CXXAdornedMemberExpr entirely. Instead, optionally allocate
...
space within the MemberExpr for the nested-name-specifier and its
source range. We'll do the same thing with explicitly-specified
template arguments, assuming I don't flip-flop again.
llvm-svn: 80642
2009-08-31 23:41:50 +00:00
Devang Patel
b2de5fa689
Subprogram is a scope. Derive DISubprogram from DIScope.
...
llvm-svn: 80637
2009-08-31 22:47:13 +00:00
John McCall
759e32bdc6
Fix bug 4784 and allow friend declarations to properly extend
...
existing declaration chains.
llvm-svn: 80636
2009-08-31 22:39:49 +00:00
Devang Patel
124095bb18
Rename DIBlock as DILexicalBlock.
...
llvm-svn: 80634
2009-08-31 22:00:32 +00:00
Devang Patel
869529c58c
Rename DIBlock as DILexicalBlock.
...
llvm-svn: 80633
2009-08-31 22:00:15 +00:00
Dan Gohman
dba696afc0
Don't use an iterator which is potentially invalidated.
...
llvm-svn: 80632
2009-08-31 21:58:28 +00:00
Bob Wilson
e98396d3fc
Use early exit and reduce indentation.
...
llvm-svn: 80631
2009-08-31 21:54:55 +00:00
Bob Wilson
53b6a02dd1
If the tied registers are already the same, there is no need to change
...
them. Move the code to make that change inside the conditional.
llvm-svn: 80630
2009-08-31 21:54:16 +00:00
Richard Osborne
e7717e7b2a
Add triple parsing support for XCore.
...
llvm-svn: 80629
2009-08-31 21:51:36 +00:00
Douglas Gregor
96ee789d33
Rename CXXQualifiedMemberExpr -> CXXAdornedMemberExpr, since we will
...
also be adding explicit template arguments as an additional
"adornment". No functionality change.
llvm-svn: 80628
2009-08-31 21:41:48 +00:00
Devang Patel
e4cfcc3081
Derive DICompileUnit from DIScope.
...
llvm-svn: 80627
2009-08-31 21:34:44 +00:00
Caroline Tice
c87c1e2cfd
Add flag to mark structs for Apple Block "byref" variables; also add code to
...
modify the type and location debug information for these variables to match the
programmer's expectations.
llvm-svn: 80625
2009-08-31 21:19:37 +00:00
Douglas Gregor
fbc1823451
Add parsing for references to member function templates with explicit
...
template argument lists, e.g., x.f<int>().
Semantic analysis will be a separate commit.
llvm-svn: 80624
2009-08-31 21:16:32 +00:00
Dan Gohman
cc2f1eb7fe
Extend the ValuesAtScope cache to cover all expressions, not just
...
SCEVUnknowns, as the non-SCEVUnknown cases in the getSCEVAtScope code
can also end up repeatedly climing through the same expression trees,
which can be unusably slow when the trees are very tall.
Also, add a quick check for SCEV pointer equality to the main
SCEV comparison routine, as the full comparison code can be expensive
in the case of large expression trees.
These fix compile-time problems in some pathlogical cases.
llvm-svn: 80623
2009-08-31 21:15:23 +00:00
Gabor Greif
f04db57674
restore semantics of operator* (removing a FIXME I had to introduce in r80224)
...
llvm-svn: 80622
2009-08-31 20:54:23 +00:00
David Goodwin
c8985204d9
Don't mark a register live at an undef use.
...
llvm-svn: 80621
2009-08-31 20:47:02 +00:00
Devang Patel
d9b6115f27
Introduce DIScope.
...
llvm-svn: 80620
2009-08-31 20:44:45 +00:00
Devang Patel
88a26fb0f1
Oops. Fix inverted logic in assertion check.
...
llvm-svn: 80618
2009-08-31 20:27:49 +00:00
Evan Cheng
4f835f1d7d
Remove .n suffix for some 16-bit opcodes now that Darwin assembler is fixed.
...
llvm-svn: 80615
2009-08-31 20:14:07 +00:00
Eli Friedman
7e4faaccda
PR4836, part 1: add Sema support for __builtin_isnan and friends; they
...
are apparently used by Solaris libc despite the fact that clang claims
to be compatible with gcc 4.2, which doesn't support them.
llvm-svn: 80610
2009-08-31 20:06:00 +00:00
Douglas Gregor
f14b46f9a8
Implement template instantiation for member operator access.
...
llvm-svn: 80609
2009-08-31 20:00:26 +00:00
Douglas Gregor
522fbc4969
Support explicit C++ member operator syntax, from James Porter!
...
llvm-svn: 80608
2009-08-31 19:52:13 +00:00
Fariborz Jahanian
879d726608
Re-implemented generation of objc_memmove_collectable
...
API for copying GC'able aggregates (Next runtime only).
llvm-svn: 80607
2009-08-31 19:33:16 +00:00
Daniel Dunbar
6733a7ec15
Fix a -Asserts warning.
...
llvm-svn: 80606
2009-08-31 19:16:38 +00:00
Daniel Dunbar
b0215efc45
X86/exp-asm-printer: Lower MachineOperand::MO_JumpTableIndex to MCOperand.
...
- Down to 7 failures on 403.gcc.
llvm-svn: 80605
2009-08-31 19:14:05 +00:00