- Mar 22, 2013
-
-
Bill Wendling authored
How did this ever work? Basically, if you have a function that's inlined into the caller, it may not have any 'call' instructions, but any 'resume' instructions it may have should still be forwarded to the outer (caller's) landing pad. This requires that all of the 'landingpad' instructions in the callee have their clauses merged with the caller's outer 'landingpad' instruction (hence the bit of ugly code in the `forwardResume' method). Testcase in a follow commit to the test-suite repository. <rdar://problem/13360379> & PR15555 llvm-svn: 177680
-
Hal Finkel authored
Thanks to Jakob for isolating the underlying problem from the test case in r177423. The original commit had introduced asymmetric copy operations, but these turned out to be a work-around to the real problem (the use of == instead of hasSubClassEq in PPCCTRLoops). llvm-svn: 177679
-
Jordan Rose authored
PR14963 llvm-svn: 177678
-
David Blaikie authored
Refactor the filename/directory information in DISubprogram to refer directly to the pair rather than the DIFile. llvm-svn: 177677
-
David Blaikie authored
Switching the DIFile field in DISubprogram to refer to the raw filename/directory pair instead of a DIFile. llvm-svn: 177676
-
Bill Wendling authored
llvm-svn: 177675
-
- Mar 21, 2013
-
-
David Blaikie authored
llvm-svn: 177674
-
David Blaikie authored
(this will produce some transient test failure/skew) llvm-svn: 177673
-
Sean Callanan authored
Clang requires them to have complete types, but we were previously only completing them if they were of tag or Objective-C object types. I have implemented a method on the ASTImporter whose job is to complete a type. It handles not only the cases mentioned above, but also array and atomic types. <rdar://problem/13446777> llvm-svn: 177672
-
rdar://problem/13477190Douglas Gregor authored
<rdar://problem/13477190> Give the Clang module cache directory some structure, so it's easier to find. We now put the Clang module cache in <system-temp-directory>/org.llvm.clang/ModuleCache. Perhaps some day there will be other caches under <system-temp-directory>/org.llvm.clang>. llvm-svn: 177671
-
Jim Ingham authored
If we stopped but no threads had a reason for stopping, we should tell the user about it rather than continuing. <rdar://problem/13273125> Astris thread status replies for single-core device confuse lldb; lldb resumes execution on attaching llvm-svn: 177670
-
rdar://problem/13477190Douglas Gregor authored
<rdar://problem/13477190> On Darwin, use DARWIN_USER_TEMP_DIR or DARWIN_USER_CACHE_DIR for the system temporary directory. The DARWIN_USER_TEMP_DIR and DARWIN_USER_CACHE_DIR configuration settings are more idiomatic for Darwin than the TMPDIR environment variable. llvm-svn: 177669
-
Jim Ingham authored
llvm-svn: 177668
-
Jack Carter authored
The .set directive in the Mips the assembler can be used to set the value of a symbol to an expression. This changes the symbol's value and type to conform to the expression's. Syntax: .set symbol, expression This patch implements the parsing of the above syntax and enables the parser to use defined symbols when parsing operands. Contributor: Vladimir Medic llvm-svn: 177667
-
Hal Finkel authored
This implements SJLJ lowering on PPC, making the Clang functions __builtin_{setjmp/longjmp} functional on PPC platforms. The implementation strategy is similar to that on X86, with the exception that a branch-and-link variant is used to get the right jump address. Credit goes to Bill Schmidt for suggesting the use of the unconditional bcl form (instead of the regular bl instruction) to limit return-address-cache pollution. Benchmarking the speed at -O3 of: static jmp_buf env_sigill; void foo() { __builtin_longjmp(env_sigill,1); } main() { ... for (int i = 0; i < c; ++i) { if (__builtin_setjmp(env_sigill)) { goto done; } else { foo(); } done:; } ... } vs. the same code using the libc setjmp/longjmp functions on a P7 shows that this builtin implementation is ~4x faster with Altivec enabled and ~7.25x faster with Altivec disabled. This comparison is somewhat unfair because the libc version must also save/restore the VSX registers which we don't yet support. llvm-svn: 177666
-
David Blaikie authored
llvm-svn: 177665
-
Renato Golin authored
llvm-svn: 177664
-
Matt Kopec authored
llvm-svn: 177663
-
Fariborz Jahanian authored
is issused for on overriding 'readwrite' property which is not auto-synthesized. Buttom line is that if hueristics determine that there will be a user implemented setter, no warning will be issued. // rdar://13388503 llvm-svn: 177662
-
David Blaikie authored
llvm-svn: 177661
-
David Blaikie authored
llvm-svn: 177659
-
Aaron Ballman authored
This ugly regex is required because on Windows, the paths come out as \\ delimited instead of / delimited. Fixes a test breakage since r176894. llvm-svn: 177658
-
Benjamin Kramer authored
llvm-svn: 177657
-
Benjamin Kramer authored
llvm-svn: 177656
-
Aaron Ballman authored
Delayed template parsing is not supported by the AST serialization system yet, so turning it off. This fixes a test breakage caused by r177336. llvm-svn: 177655
-
Hal Finkel authored
Although there is only one Altivec VRSAVE register, it is a member of a register class, and we need the ability to spill it. Because this register is normally callee-preserved and handled by special code this has never before been necessary. However, this capability will be required by a forthcoming commit adding SjLj support. llvm-svn: 177654
-
Hal Finkel authored
The old code used to lower FRAMEADDR tried to replicate the logic in the real frame-lowering code that determines whether or not the frame pointer (r31) will be used. When it seemed as through the frame pointer would not be used, the stack pointer (r1) was used instead. Unfortunately, because the stack size is not yet known, this does not work. Instead, this change introduces new always-reserved pseudo-registers (FP and FP8) that are replaced during prologue insertion with the real frame-pointer register (either r1 or r31). It is important that this intrinsic always return a valid frame address because it is used by Clang to store the frame address as part of code generation for __builtin_setjmp. llvm-svn: 177653
-
Renato Golin authored
NEON is not IEEE 754 compliant, so we should avoid lowering single-precision floating point operations with NEON unless unsafe-math is turned on. The equivalent VFP instructions are IEEE 754 compliant, but in some cores they're much slower, so some archs/OSs might still request it to be on by default, such as Swift and Darwin. llvm-svn: 177651
-
Bill Wendling authored
The landingpad instruction needs to be the first non-PHI instruction in the unwind destination block. llvm-svn: 177650
-
Jordan Rose authored
Debug utility only, no functionality change. llvm-svn: 177649
-
Dmitry Vyukov authored
1. do not report running threads as leaks 2. aggregate leaked threads by creation stack llvm-svn: 177647
-
Jim Ingham authored
llvm-svn: 177646
-
Tobias Grosser authored
llvm-svn: 177645
-
Tobias Grosser authored
Scev code generation can now handle scops with non canonical induction variables. Hence there is no need to introduce canonical ones any more. llvm-svn: 177644
-
Tobias Grosser authored
We now detect scops without a canonical induction variable and can generate a polyhedral representation for them. There was no modification necessary to code generate these scops. llvm-svn: 177643
-
Tobias Grosser authored
llvm-svn: 177642
-
Dmitry Vyukov authored
explicitly say "ctor/dtor vs virtual call" llvm-svn: 177640
-
Dmitry Vyukov authored
llvm-svn: 177638
-
Dmitry Vyukov authored
llvm-svn: 177637
-
Dmitry Vyukov authored
Asynchronous signal (e.g. SIGABRT) can be received with any value of in_rtl. llvm-svn: 177636
-