Skip to content
  1. May 04, 2013
  2. May 03, 2013
    • Bill Wendling's avatar
      67758579
    • Ulrich Weigand's avatar
      · b9d5d073
      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
      b9d5d073
    • Ulrich Weigand's avatar
      · 2c3a219b
      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
      2c3a219b
    • Ulrich Weigand's avatar
      · 300b6875
      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
      300b6875
    • Ulrich Weigand's avatar
      · d839490f
      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
      d839490f
    • Ulrich Weigand's avatar
      · 640192da
      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
      640192da
    • Shuxin Yang's avatar
      Decompose GVN::processNonLocalLoad() (about 400 LOC) into smaller helper... · 637b9beb
      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
      637b9beb
    • Akira Hatanaka's avatar
      [mips] Split the DSP control register and define one register for each field of · e86bd4f6
      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
      e86bd4f6
    • Nadav Rotem's avatar
      LoopVectorizer: Add support for if-conversion of PHINodes with 3+ incoming values. · 4ce060b3
      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
      4ce060b3
    • Tom Stellard's avatar
      R600: Expand vector or, shl, srl, and xor nodes · 4489b85f
      Tom Stellard authored
      llvm-svn: 181035
      4489b85f
    • Tom Stellard's avatar
      R600: BFI_INT is a vector-only instruction · 6a6ecedc
      Tom Stellard authored
      llvm-svn: 181034
      6a6ecedc
    • Tom Stellard's avatar
      R600: Add pattern for SHA-256 Ma function · eac65dde
      Tom Stellard authored
      This can be optimized using the BFI_INT instruction.
      
      llvm-svn: 181033
      eac65dde
    • Tom Stellard's avatar
      R600: Clean up comments in Processors.td · c2516c6e
      Tom Stellard authored
      llvm-svn: 181032
      c2516c6e
    • Benjamin Kramer's avatar
      Autoconf: Compile cxxabi.h in C++ mode. · 00622f7d
      Benjamin Kramer authored
      Should fix PR15877.
      
      llvm-svn: 181026
      00622f7d
    • Tobias Grosser's avatar
      RegionInfo: Do not crash if unreachable block is found · a7ddc982
      Tobias Grosser authored
      llvm-svn: 181025
      a7ddc982
    • Benjamin Kramer's avatar
    • Richard Sandiford's avatar
      Remove comment that no target supports 128-bit IEEE floats · ae426b4a
      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
      ae426b4a
    • Richard Sandiford's avatar
      [SystemZ] Add MCJIT support · ca044082
      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
      ca044082
    • Ulrich Weigand's avatar
      · 90c9abdd
      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
      90c9abdd
    • Amara Emerson's avatar
      Add support for reading ARM ELF build attributes. · 2f54d9fe
      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
      2f54d9fe
    • Richard Sandiford's avatar
      [SystemZ] Add ELF relocation support · affdc8b5
      Richard Sandiford authored
      Another step towards reinstating the SystemZ backend.  Tests will be
      included in the main backend patch.
      
      llvm-svn: 181008
      affdc8b5
    • Richard Sandiford's avatar
      [SystemZ] Add llvm::Triple::systemz · a238c5e0
      Richard Sandiford authored
      First step towards reinstating the SystemZ backend.  Tests will be
      included in the main backend patch.
      
      llvm-svn: 181007
      a238c5e0
    • Benjamin Kramer's avatar
    • Pekka Jaaskelainen's avatar
      Added pocl and TCE blurbs to the ReleaseNotes. · b531a117
      Pekka Jaaskelainen authored
      llvm-svn: 181001
      b531a117
    • Aaron Ballman's avatar
      cc958f00
    • Aaron Ballman's avatar
      63fe0148
    • Akira Hatanaka's avatar
      9b27dc53
    • Reid Kleckner's avatar
      Fix missing include in Hexagon code for Release+Asserts · 1c76f155
      Reid Kleckner authored
      llvm-svn: 180983
      1c76f155
    • John McCall's avatar
      In MC asm parsing, account for the possibility of whitespace within · f73981b2
      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
      f73981b2
Loading