Skip to content
  1. Jun 13, 2013
  2. Jun 12, 2013
    • David Blaikie's avatar
      Revert r183854 (PPC: Fix switch warnings from r183841) · c2467c4e
      David Blaikie authored
      Now that the PRED_BAD has been removed, this is failing the Clang
      -Werror build due to -Wcovered-switch-default.
      
      llvm-svn: 183863
      c2467c4e
    • Bill Schmidt's avatar
      [PowerPC] Remove PRED_BAD from PPC::Predicate enumeration. · 4fcb8c26
      Bill Schmidt authored
      I'm taking David Blaikie's suggestion to use an
      Optional<PPC::Predicate> return value instead.  That's the right
      solution for this problem.  Thanks for pointing out that possibility!
      
      llvm-svn: 183858
      4fcb8c26
    • Bill Schmidt's avatar
      [PowerPC] Fix switch warnings from r183841. · 31c60f74
      Bill Schmidt authored
      Introducing PRED_BAD caused some unexpected warnings that are now
      suppressed.
      
      llvm-svn: 183854
      31c60f74
    • Bill Schmidt's avatar
      [PowerPC] Expose some calling convention functions in PPCISelLowering.h. · 230b4513
      Bill Schmidt authored
      This is a preparatory patch for fast-isel support.  The instruction
      selector will need to access some functions in PPCGenCallingConv.inc,
      which in turn requires several helper functions to be defined.  These
      are currently defined near the only use of PCCGenCallingConv.inc,
      inside PPCISelLowering.cpp.  This patch moves the declaration of the
      functions into the associated header file to provide the needed
      visibility.
      
      No functional change intended.
      
      llvm-svn: 183844
      230b4513
    • Bill Schmidt's avatar
      Add artificial PRED_BAD to PPC::Predicate enumeration. · 6207a4b7
      Bill Schmidt authored
      Allows returning a PPC::Predicate from a function with a no-predicate
      value possible.  Preparatory patch for fast-isel on PPC64 ELF.  No
      behavioral change intended.
      
      llvm-svn: 183841
      6207a4b7
    • Ulrich Weigand's avatar
      · 32d725b8
      Ulrich Weigand authored
      [MC/DWARF] Support .debug_frame / .debug_line code alignment factors
      
      I've been comparing the object file output of LLVM's integrated
      assembler against the external assembler on PowerPC, and one
      area where differences still remain are in DWARF sections.
      
      In particular, the GNU assembler generates .debug_frame and
      .debug_line sections using a code alignment factor of 4, since
      all PowerPC instructions have size 4 and must be aligned to a
      multiple of 4.  However, current MC code hard-codes a code
      alignment factor of 1.
      
      This patch changes this by adding a "minimum instruction alignment"
      data element to MCAsmInfo and using this as code alignment factor.
      
      This requires passing a MCContext into MCDwarfLineAddr::Encode
      and MCDwarfLineAddr::EncodeAdvanceLoc.  Note that one caller,
      MCDwarfLineAddr::Write, didn't actually have that information
      available.  However, it turns out that this routine is in fact
      never used in the whole code base, so the patch simply removes
      it.  If it turns out to be needed again at a later time, it
      could be re-added with an updated interface.
      
      llvm-svn: 183834
      32d725b8
    • Patrik Hagglund's avatar
      Fix gcc -flto build, by adding LLVM_ATTRIBUTE_USED to · 0cc888b7
      Patrik Hagglund authored
      LLVMX86CompilationCallback2, called from inline asm.
      
      llvm-svn: 183824
      0cc888b7
    • Eric Christopher's avatar
      Correct the def registers for the 8bit x86 divide instructions to · 5331f0ee
      Eric Christopher authored
      match the comments and what the instruction actually does. Noticed
      on inspection.
      
      llvm-svn: 183809
      5331f0ee
    • Eric Christopher's avatar
      Use the Copy we defined above here. · 8f6a083b
      Eric Christopher authored
      llvm-svn: 183808
      8f6a083b
    • Akira Hatanaka's avatar
      Fix CMakeLists. · f5288c26
      Akira Hatanaka authored
      llvm-svn: 183804
      f5288c26
    • Akira Hatanaka's avatar
      [mips] Add an IR transformation pass that optimizes calls to sqrt. · 5c50a16e
      Akira Hatanaka authored
      The pass emits a call to sqrt that has attribute "read-none". This call will be
      converted to an ISD::FSQRT node during DAG construction, which will turn into
      a mips native sqrt instruction.
       
      
      llvm-svn: 183802
      5c50a16e
    • JF Bastien's avatar
      ARM FastISel fix sext/zext fold · 3c6bb8e1
      JF Bastien authored
      Sign- and zero-extension folding was slightly incorrect because it wasn't checking that the shift on extensions was zero. Further, I recently added AND rd, rn, #255 as a form of 8-bit zero extension, and failed to add the folding code for it.
      
      This patch fixes both issues.
      
      This patch fixes both, and the test should remain the same:
        test/CodeGen/ARM/fast-isel-fold.ll
      
      llvm-svn: 183794
      3c6bb8e1
  3. Jun 11, 2013
  4. Jun 10, 2013
    • Tim Northover's avatar
      X86: Stop LEA64_32r doing unspeakable things to its arguments. · 6833e3fd
      Tim Northover authored
      Previously LEA64_32r went through virtually the entire backend thinking it was
      using 32-bit registers until its blissful illusions were cruelly snatched away
      by MCInstLower and 64-bit equivalents were substituted at the last minute.
      
      This patch makes it behave normally, and take 64-bit registers as sources all
      the way through. Previous uses (for 32-bit arithmetic) are accommodated via
      SUBREG_TO_REG instructions which make the types and classes agree properly.
      
      llvm-svn: 183693
      6833e3fd
    • Ulrich Weigand's avatar
      · 4c44032a
      Ulrich Weigand authored
      [PowerPC] Support extended sc mnemonic
      
      A plain "sc" without argument is supposed to be treated like "sc 0"
      by the assembler.  This patch adds a corresponding alias.
      
      Problem reported by Joerg Sonnenberger.
      
      llvm-svn: 183687
      4c44032a
    • Ulrich Weigand's avatar
      · aa4a2d71
      Ulrich Weigand authored
      [PowerPC] Support branch mnemonics with implied CR0
      
      The extended branch mnemonics are supposed to use an implied CR0
      if there is no explicit condition register specified.  This patch
      adds extra variants of the mnemonics to this effect.
      
      Problem reported by Joerg Sonnenberger.
      
      llvm-svn: 183686
      aa4a2d71
    • Ulrich Weigand's avatar
      · 39740625
      Ulrich Weigand authored
      [PowerPC] Use multiclass to generate extended branch mnemonics
      
      This patch removes some redundancy by generating the extended branch
      mnemonics via a multiclass.
      
      No change in behaviour expected.
      
      llvm-svn: 183685
      39740625
    • Aaron Ballman's avatar
      ab1d27ed
    • Amaury de la Vieuville's avatar
      Fix misleading comments in ARMAsmParser · bac917f3
      Amaury de la Vieuville authored
      llvm-svn: 183657
      bac917f3
    • Amaury de la Vieuville's avatar
      ARM: ISB cannot be passed the same options as DMB · 43cb13a5
      Amaury de la Vieuville authored
      ISB should only accepts full system sync, other options are reserved
      
      llvm-svn: 183656
      43cb13a5
    • Justin Holewinski's avatar
      [NVPTX] Remove old CONST_NOT_GEN address space that is not being used anymore... · b96d1395
      Justin Holewinski authored
      [NVPTX] Remove old CONST_NOT_GEN address space that is not being used anymore and causes constants to be emitted in the global address space
      
      llvm-svn: 183652
      b96d1395
    • Reed Kotler's avatar
      Fix a regression I introduced when I expanded the complex pseudos in · ce510830
      Reed Kotler authored
      the Mips16 port. A few of the psuedos could either take signed
      or unsigned arguments and I did not distinguish the case and improperly
      rejected some valid cases that the assembler had previously accepted
      when they were pure pseudos that expanded as assembly instructions.
      
      llvm-svn: 183633
      ce510830
  5. Jun 09, 2013
    • Logan Chien's avatar
      Fix ARM unwind opcode assembler in several cases. · 325823a1
      Logan Chien authored
      Changes to ARM unwind opcode assembler:
      
      * Fix multiple .save or .vsave directives.  Besides, the
        order is preserved now.
      
      * For the directives which will generate multiple opcodes,
        such as ".save {r0-r11}", the order of the unwind opcode
        is fixed now, i.e. the registers with less encoding value
        are popped first.
      
      * Fix the $sp offset calculation.  Now, we can use the
        .setfp, .pad, .save, and .vsave directives at any order.
      
      Changes to test cases:
      
      * Add test cases to check the order of multiple opcodes
        for the .save directive.
      
      * Fix the incorrect $sp offset in the test case.  The
        stack pointer offset specified in the test case was
        incorrect.  (Changed test cases: ehabi-mc-section.ll and
        ehabi-mc.ll)
      
      * The opcode to restore $sp are slightly reordered.  The
        behavior are not changed, and the new output is same
        as the output of GNU as.  (Changed test cases:
        eh-directive-pad.s and eh-directive-setfp.s)
      
      llvm-svn: 183627
      325823a1
    • Elena Demikhovsky's avatar
    • JF Bastien's avatar
      ARM FastISel fix load register classes · 652fa6a8
      JF Bastien authored
      The register classes when emitting loads weren't quite restricting enough, leading to MI verification failure on the result register.
      
      These are new failures that weren't there the first time I tried enabling ARM FastISel for new targets.
      
      llvm-svn: 183624
      652fa6a8
  6. Jun 08, 2013
Loading