- Jan 09, 2012
-
-
Howard Hinnant authored
First brush with testing __gxx_personality_v0 reveals there is still a long way to go. But my understanding of what it is supposed to do continues to improve. I am currently contemplating whether I need to implement typeinfo before completing __gxx_personality_v0 in order to get matching catch handlers correct. llvm-svn: 147761
-
Howard Hinnant authored
Add a few TODO's and FIXME's. Making notes as I go along, but not slowing down to fix these yet. Just don't want anything to fall through the cracks. llvm-svn: 147760
-
Howard Hinnant authored
Correct comment regarding members of __cxa_dependent_exception. Actually it is useful to disguise a __cxa_dependent_exception as a __cxa_exception by filling in most (not all) of these members at __cxa_dependent_exception construction time. That way most routines don't have to care which kind of exception they have. llvm-svn: 147759
-
Craig Topper authored
llvm-svn: 147758
-
- Jan 08, 2012
-
-
Peter Collingbourne authored
llvm-svn: 147757
-
Peter Collingbourne authored
llvm-svn: 147756
-
Peter Collingbourne authored
llvm-svn: 147755
-
Benjamin Kramer authored
We still save an instruction when just the "and" part is replaced. Also change the code to match comments more closely. llvm-svn: 147753
-
Evan Cheng authored
llvm-svn: 147752
-
Evan Cheng authored
safely proven not to have been clobbered. No small test case possible. llvm-svn: 147751
-
Fariborz Jahanian authored
c++ object properties. wip. llvm-svn: 147750
-
Benjamin Kramer authored
InstCombine: If we have a bit test and a sign test anded/ored together, merge the sign bit into the bit test. This is common in bit field code, e.g. checking if the first or the last bit of a bit field is set. llvm-svn: 147749
-
Victor Umansky authored
llvm-svn: 147748
-
rdar://problem/10645694Greg Clayton authored
Fixed an ARM backtracing issue where if the previous frame was a thumb function and it was a tail call so that the current frame returned to an address that would fall into the next function, we would use the next function as the basis for how we unwound the previous frame's registers and of course get things wrong. We now fix the PC code address using the current ABI plug-in, and the ARM ABI plug-in has been modified to correctly fix the code address. So when we do the symbol context lookup, instead of taking an address like 0x1001 and decrementing 1, and looking up the symbol context for a frame, we now correctly fix 0x1001 to 0x1000, then decrement that by 1 to get the correct symbol context. I added a bunch more logging to "log enable lldb uwnind" to help us in the future. We now log the PC, FP and SP (if they are available), and we also dump the "active_row" that we find for unwinding a frame. llvm-svn: 147747
-
rdar://problem/10660369Greg Clayton authored
Fixed the default ARM regiter set to be able to refer to "r7" as "fp" for the apple debugserver. llvm-svn: 147746
-
Rafael Espindola authored
llvm-svn: 147745
-
- Jan 07, 2012
-
-
Rafael Espindola authored
llvm-svn: 147744
-
Rafael Espindola authored
the produce assembly when using CFI just a bit more readable. llvm-svn: 147743
-
Benjamin Kramer authored
-8 bytes on x86_64, no change on x86. llvm-svn: 147742
-
Greg Clayton authored
The previous approach to controlling the recursion was doing it from outside the function which is not reliable. Now it is being done inside the function. This might not solve all of the crashes that we were seeing since there are other functions that clear the bit that indicates that the summary is in the process of being generated, but it might solve some. llvm-svn: 147741
-
Jakob Stoklund Olesen authored
Darwin doesn't do static, and ELF targets only support static. llvm-svn: 147740
-
Craig Topper authored
llvm-svn: 147739
-
Benjamin Kramer authored
llvm-svn: 147738
-
Benjamin Kramer authored
llvm-svn: 147737
-
Benjamin Kramer authored
88 -> 80 bytes on x86_64. llvm-svn: 147736
-
Fariborz Jahanian authored
with non-trivial copies. // rdar://6137845 llvm-svn: 147735
-
Craig Topper authored
llvm-svn: 147734
-
Craig Topper authored
llvm-svn: 147733
-
Anna Zaks authored
A patch by Dmitri Gribenko! The attached patch fixes a use-after-free in AnalysisConsumer::HandleTranslationUnit. The problem is that BugReporter's destructor runs after AnalysisManager has been already deleted. The fix introduces a scope to force correct destruction order. A crash happens only when reports have been added in AnalysisConsumer::HandleTranslationUnit's BugReporter. We don't have such checkers in clang so no test. llvm-svn: 147732
-
Benjamin Kramer authored
This should fix the odd behavior that find() is slower than lookup(). llvm-svn: 147731
-
Abramo Bagnara authored
llvm-svn: 147730
-
Douglas Gregor authored
to Redeclarable<NamespaceDecl>, so that we benefit from the improveed redeclaration deserialization and merging logic provided by Redeclarable<T>. Otherwise, no functionality change. As a drive-by fix, collapse the "inline" bit into the low bit of the original namespace/anonymous namespace, saving 8 bytes per NamespaceDecl on x86_64. llvm-svn: 147729
-
Craig Topper authored
Add some DAG combines for SUBC/SUBE. If nothing uses the carry/borrow out of subc, turn it into a sub. Turn (subc x, x) into 0 with no borrow. Turn (subc x, 0) into x with no borrow. Turn (subc -1, x) into (xor x, -1) with no borrow. Turn sube with no borrow in into subc. llvm-svn: 147728
-
Cameron Zwarich authored
/// FastEmit_f - This method is called by target-independent code /// to request that an instruction with the given type, opcode, and /// floating-point immediate operand be emitted. virtual unsigned FastEmit_f(MVT VT, MVT RetVT, unsigned Opcode, const ConstantFP *FPImm); Currently, it emits an accidentally overloaded version without the const on the ConstantFP*. This doesn't affect anything in the tree, since nothing causes that method to be autogenerated, but I have been playing with some ARM TableGen refactorings that hit this problem. llvm-svn: 147727
-
Jakob Stoklund Olesen authored
Reserved registers don't have proper live ranges, their LiveInterval simply has a snippet of liveness for each def. Virtual registers with a single value that is a copy of a reserved register (typically %esp) can be coalesced with the reserved register if the live range doesn't overlap any reserved register defs. When coalescing with a reserved register, don't modify the reserved register live range. Just leave it as a bunch of dead defs. This eliminates quadratic coalescer behavior in i386 functions with many function calls. PR11699 llvm-svn: 147726
-
Jakob Stoklund Olesen authored
llvm-svn: 147725
-
Andrew Trick authored
This will be more important as we extend the LSR pass in ways that don't rely on the formula solver. In particular, we need it for constructing IV chains. llvm-svn: 147724
-
Eli Friedman authored
More lambda work: semantic analysis of capturing 'this'. It's a bit complicated, but we have to be careful about when exactly captures are marked given PotentiallyPotentiallyEvaluated contexts. (Actually, it's not 100% correct yet, but it's close enough for the moment.) llvm-svn: 147723
-
rdar://problem/10658091Greg Clayton authored
Fixed dynamic types for objective C to not try and make everything dynamic including base classes. llvm-svn: 147722
-
Eli Bendersky authored
llvm-svn: 147721
-