- May 04, 2013
-
-
Rafael Espindola authored
The linker is now responsible only for actually linking the modules, it is up to the clients to create and destroy them. llvm-svn: 181098
-
Rafael Espindola authored
llvm-svn: 181097
-
Rafael Espindola authored
llvm-svn: 181096
-
Rafael Espindola authored
llvm-svn: 181095
-
Rafael Espindola authored
llvm-svn: 181094
-
Krzysztof Parzyszek authored
llvm-svn: 181090
-
Nick Lewycky authored
llvm-svn: 181082
-
Amara Emerson authored
llvm-svn: 181079
-
Reed Kotler authored
llvm-svn: 181072
-
Amara Emerson authored
llvm-svn: 181066
-
Amara Emerson authored
llvm-svn: 181062
-
- May 03, 2013
-
-
Bill Wendling authored
llvm-svn: 181059
-
Ulrich Weigand authored
[PowerPC] Avoid using '$' in generated assembler code PowerPC assemblers are supposed to support a stand-alone '$' symbol as an alternative of '.' to refer to the current PC. This does not work in the LLVM assembler parser yet. To avoid bootstrap failures when using the LLVM assembler as system assembler, this patch modifies the assembler source code generated by LLVM to avoid using '$' (and simply use '.' instead). llvm-svn: 181054
-
Ulrich Weigand authored
[PowerPC] Parse platform-specifc variant kinds in AsmParser This patch adds support for PowerPC platform-specific variant kinds in MCSymbolRefExpr::getVariantKindForName, and also adds a test case to verify they are translated to the appropriate fixup type. llvm-svn: 181053
-
Ulrich Weigand authored
[PowerPC] Add some Book II instructions to AsmParser This patch adds a couple of Book II instructions (isync, icbi) to the PowerPC assembler parser. These are needed when bootstrapping clang with the integrated assembler forced on, because they are used in inline asm statements in the code base. The test case adds the full list of Book II storage control instructions, including associated extended mnemonics. Again, those that are not yet supported as marked as FIXME. llvm-svn: 181052
-
Ulrich Weigand authored
[PowerPC] Support extended mnemonics in AsmParser This patch adds infrastructure to support extended mnemonics in the PowerPC assembler parser. It adds support specifically for those extended mnemonics that LLVM will itself generate. The test case lists *all* extended mnemonics according to the PowerPC ISA v2.06 Book I, but marks those not yet supported as FIXME. llvm-svn: 181051
-
Ulrich Weigand authored
[PowerPC] Add assembler parser This adds assembler parser support to the PowerPC back end. The parser will run for any powerpc-*-* and powerpc64-*-* triples, but was tested only on 64-bit Linux. The supported syntax is intended to be compatible with the GNU assembler. The parser does not yet support all PowerPC instructions, but it does support anything that is generated by LLVM itself. There is no support for testing restricted instruction sets yet, i.e. the parser will always accept any instructions it knows, no matter what feature flags are given. Instruction operands will be checked for validity and errors generated. (Error handling in general could still be improved.) The patch adds a number of test cases to verify instruction and operand encodings. The tests currently cover all instructions from the following PowerPC ISA v2.06 Book I facilities: Branch, Fixed-point, Floating-Point, and Vector. Note that a number of these instructions are not yet supported by the back end; they are marked with FIXME. A number of follow-on check-ins will add extra features. When they are all included, LLVM passes all tests (including bootstrap) when using clang -cc1as as the system assembler. llvm-svn: 181050
-
Shuxin Yang authored
Decompose GVN::processNonLocalLoad() (about 400 LOC) into smaller helper functions. No function change. This function consists of following steps: 1. Collect dependent memory accesses. 2. Analyze availability. 3. Perform fully redundancy elimination, or 4. Perform PRE, depending on the availability Step 2, 3 and 4 are now moved to three helper routines. llvm-svn: 181047
-
Akira Hatanaka authored
its fields. This removes false dependencies between DSP instructions which access different fields of the the control register. Implicit register operands are added to instructions RDDSP and WRDSP after instruction selection, depending on the value of the mask operand. llvm-svn: 181041
-
Nadav Rotem authored
By supporting the vectorization of PHINodes with more than two incoming values we can increase the complexity of nested if statements. We can now vectorize this loop: int foo(int *A, int *B, int n) { for (int i=0; i < n; i++) { int x = 9; if (A[i] > B[i]) { if (A[i] > 19) { x = 3; } else if (B[i] < 4 ) { x = 4; } else { x = 5; } } A[i] = x; } } llvm-svn: 181037
-
Tom Stellard authored
llvm-svn: 181035
-
Tom Stellard authored
llvm-svn: 181034
-
Tom Stellard authored
This can be optimized using the BFI_INT instruction. llvm-svn: 181033
-
Tom Stellard authored
llvm-svn: 181032
-
Benjamin Kramer authored
Should fix PR15877. llvm-svn: 181026
-
Tobias Grosser authored
llvm-svn: 181025
-
Benjamin Kramer authored
llvm-svn: 181019
-
Richard Sandiford authored
The soon-to-be-committed SystemZ port uses 128-bit IEEE floats. MIPS64 GNU/Linux does too (albeit with unusual NaNs). llvm-svn: 181016
-
Richard Sandiford authored
Another step towards reinstating the SystemZ backend. I'll commit the configure changes separately (TARGET_HAS_JIT etc.), then commit a patch to enable the MCJIT tests on SystemZ. llvm-svn: 181015
-
Ulrich Weigand authored
[SystemZ] Support System Z as host architecture The llvm::sys::AddSignalHandler function (as well as related routines) in lib/Support/Unix/Signals.inc currently registers a signal handler routine via "sigaction". When this handler is called due to a SIGSEGV, SIGILL or similar signal, it will show a stack backtrace, deactivate the handler, and then simply return to the operating system. The intent is that the OS will now retry execution at the same location as before, which ought to again trigger the same error condition and cause the same signal to be delivered again. Since the hander is now deactivated, the OS will take its default action (usually, terminate the program and possibly create a core dump). However, this method doesn't work reliably on System Z: With certain signals (namely SIGILL, SIGFPE, and SIGTRAP), the program counter stored by the kernel on the signal stack frame (which is the location where execution will resume) is not the instruction that triggered the fault, but then instruction *after it*. When the LLVM signal handler simply returns to the kernel, execution will then resume at *that* address, which will not trigger the problem again, but simply go on and execute potentially unrelated code leading to random errors afterwards. To fix this, the patch simply goes and re-raises the signal in question directly from the handler instead of returning from it. This is done only on System Z and only for those signals that have this particular problem. llvm-svn: 181010
-
Amara Emerson authored
Build attribute sections can now be read if they exist via ELFObjectFile, and the llvm-readobj tool has been extended with an option to dump this information if requested. Regression tests are also included which exercise these features. Also update the docs with a fixed ARM ABI link and a new link to the Addenda which provides the build attributes specification. llvm-svn: 181009
-
Richard Sandiford authored
Another step towards reinstating the SystemZ backend. Tests will be included in the main backend patch. llvm-svn: 181008
-
Richard Sandiford authored
First step towards reinstating the SystemZ backend. Tests will be included in the main backend patch. llvm-svn: 181007
-
Benjamin Kramer authored
llvm-svn: 181005
-
Pekka Jaaskelainen authored
llvm-svn: 181001
-
Aaron Ballman authored
llvm-svn: 180992
-
Aaron Ballman authored
llvm-svn: 180991
-
Akira Hatanaka authored
llvm-svn: 180988
-
Reid Kleckner authored
llvm-svn: 180983
-
John McCall authored
the "identifier" parsed by the frontend callback by skipping forward until we've consumed a token that ends at the point dictated by the callback. In addition, inform the callback when it's parsing an unevaluated operand (e.g. mov eax, LENGTH A::x) as opposed to an evaluated one (e.g. mov eax, [A::x]). This commit depends on a clang commit. llvm-svn: 180978
-