Skip to content
  1. Apr 05, 2013
  2. Apr 04, 2013
  3. Apr 03, 2013
    • Arnold Schwaighofer's avatar
      X86 cost model: Vector shifts are expensive in most cases · e9b50164
      Arnold Schwaighofer authored
      The default logic does not correctly identify costs of casts because they are
      marked as custom on x86.
      
      For some cases, where the shift amount is a scalar we would be able to generate
      better code. Unfortunately, when this is the case the value (the splat) will get
      hoisted out of the loop, thereby making it invisible to ISel.
      
      radar://13130673
      radar://13537826
      
      llvm-svn: 178703
      e9b50164
    • Rafael Espindola's avatar
      Implement the "mips endian" for r_info. · 2025e8b8
      Rafael Espindola authored
      Normally r_info is just a 32 of 64 bit number matching the endian of the rest
      of the file. Unfortunately, mips 64 bit little endian is special: The top 32
      bits are a little endian number and the following 32 are a big endian one.
      
      llvm-svn: 178694
      2025e8b8
    • Richard Osborne's avatar
      [XCore] Check disassembly of the st8 instruction. · 122acb21
      Richard Osborne authored
      llvm-svn: 178689
      122acb21
    • Richard Osborne's avatar
      [XCore] Update disassembler test to improve coverage of the instructions. · fb0b4ea3
      Richard Osborne authored
      Previously some instructions were unintentionally covered twice and
      others were not covered at all.
      
      llvm-svn: 178688
      fb0b4ea3
    • Eric Christopher's avatar
      Implements low-level object file format specific output for COFF and · 9cad53cf
      Eric Christopher authored
      ELF with support for:
      
      - File headers
      - Section headers + data
      - Relocations
      - Symbols
      - Unwind data (only COFF/Win64)
      
      The output format follows a few rules:
      - Values are almost always output one per line (as elf-dump/coff-dump already do). - Many values are translated to something readable (like enum names), with the raw value in parentheses.
      - Hex numbers are output in uppercase, prefixed with "0x".
      - Flags are sorted alphabetically.
      - Lists and groups are always delimited.
      
      Example output:
      ---------- snip ----------
      Sections [
        Section {
          Index: 1
          Name: .text (5)
          Type: SHT_PROGBITS (0x1)
          Flags [ (0x6)
            SHF_ALLOC (0x2)
            SHF_EXECINSTR (0x4)
          ]
          Address: 0x0
          Offset: 0x40
          Size: 33
          Link: 0
          Info: 0
          AddressAlignment: 16
          EntrySize: 0
          Relocations [
            0x6 R_386_32 .rodata.str1.1 0x0
            0xB R_386_PC32 puts 0x0
            0x12 R_386_32 .rodata.str1.1 0x0
            0x17 R_386_PC32 puts 0x0
          ]
          SectionData (
            0000: 83EC04C7 04240000 0000E8FC FFFFFFC7  |.....$..........|
            0010: 04240600 0000E8FC FFFFFF31 C083C404  |.$.........1....|
            0020: C3                                   |.|
          )
        }
      ]
      ---------- snip ----------
      
      Relocations and symbols can be output standalone or together with the section header as displayed in the example.
      This feature set supports all tests in test/MC/COFF and test/MC/ELF (and I suspect all additional tests using elf-dump), making elf-dump and coff-dump deprecated.
      
      Patch by Nico Rieck!
      
      llvm-svn: 178679
      9cad53cf
    • Eric Christopher's avatar
      Implement sectionContainsSymbol for ELF. · 8d67ab4f
      Eric Christopher authored
      Patch by Nico Rieck!
      
      llvm-svn: 178677
      8d67ab4f
    • Eric Christopher's avatar
      When dumping clear the arm/thumb flag for now. · d5972ea8
      Eric Christopher authored
      Patch by Nico Rieck!
      
      llvm-svn: 178676
      d5972ea8
    • Vincent Lejeune's avatar
      R600: Fix last ALU of a clause being emitted in a separate clause · c3d3f9b6
      Vincent Lejeune authored
      llvm-svn: 178675
      c3d3f9b6
    • Bill Schmidt's avatar
      Fix PR15632: No support for ppcf128 floating-point remainder on PowerPC. · 92e26646
      Bill Schmidt authored
      For this we need to use a libcall.  Previously LLVM didn't implement
      libcall support for frem, so I've added it in the usual
      straightforward manner.  A test case from the bug report is included.
      
      llvm-svn: 178639
      92e26646
    • Tim Northover's avatar
      AArch64: implement ETMv4 trace system registers. · 5816ca11
      Tim Northover authored
      llvm-svn: 178637
      5816ca11
    • Timur Iskhodzhanov's avatar
    • Timur Iskhodzhanov's avatar
      Fix SRet for thiscall in i686-pc-win32 · f4e0665e
      Timur Iskhodzhanov authored
      llvm-svn: 178634
      f4e0665e
    • Jakob Stoklund Olesen's avatar
      Add 64-bit compare + branch for SPARC v9. · d9bbdfd3
      Jakob Stoklund Olesen authored
      The same compare instruction is used for 32-bit and 64-bit compares. It
      sets two different sets of flags: icc and xcc.
      
      This patch adds a conditional branch instruction using the xcc flags for
      64-bit compares.
      
      llvm-svn: 178621
      d9bbdfd3
    • Hal Finkel's avatar
      Use PPC reciprocal estimates with Newton iteration in fast-math mode · 2e103310
      Hal Finkel authored
      When unsafe FP math operations are enabled, we can use the fre[s] and
      frsqrte[s] instructions, which generate reciprocal (sqrt) estimates, together
      with some Newton iteration, in order to quickly generate floating-point
      division and sqrt results. All of these instructions are separately optional,
      and so each has its own feature flag (except for the Altivec instructions,
      which are covered under the existing Altivec flag). Doing this is not only
      faster than using the IEEE-compliant fdiv/fsqrt instructions, but allows these
      computations to be pipelined with other computations in order to hide their
      overall latency.
      
      I've also added a couple of missing fnmsub patterns which turned out to be
      missing (but are necessary for good code generation of the Newton iterations).
      Altivec needs a similar fix, but that will probably be more complicated because
      fneg is expanded for Altivec's v4f32.
      
      llvm-svn: 178617
      2e103310
    • Rafael Espindola's avatar
      Fix the fde encoding used by mips to match gas. · b9b7ae0c
      Rafael Espindola authored
      This finally fixes the encoding. The patch also
      * Removes eh-frame.ll. It was an unnecessary .ll to .o test that was checking
        the wrong value.
      * Merge fde-reloc.s and eh-frame.s into a single test, since the only difference
        was the run lines.
      * Don't blindly test the content of the entire .eh_frame section. It makes it
        hard to anyone actually fixing a bug and hitting a difference in a binary
        blob. Instead, use a CHECK for each field and document what is being checked.
      
      llvm-svn: 178615
      b9b7ae0c
    • Michael Gottesman's avatar
      Remove an optimization where we were changing an objc_autorelease into an... · b8c88365
      Michael Gottesman authored
      Remove an optimization where we were changing an objc_autorelease into an objc_autoreleaseReturnValue.
      
      The semantics of ARC implies that a pointer passed into an objc_autorelease
      must live until some point (potentially down the stack) where an
      autorelease pool is popped. On the other hand, an
      objc_autoreleaseReturnValue just signifies that the object must live
      until the end of the given function at least.
      
      Thus objc_autorelease is stronger than objc_autoreleaseReturnValue in
      terms of the semantics of ARC* implying that performing the given
      strength reduction without any knowledge of how this relates to
      the autorelease pool pop that is further up the stack violates the
      semantics of ARC.
      
      *Even though objc_autoreleaseReturnValue if you know that no RV
      optimization will occur is more computationally expensive.
      
      llvm-svn: 178612
      b8c88365
    • Akira Hatanaka's avatar
      [mips] Small update to the implementation of eh.return for Mips. · 023c678a
      Akira Hatanaka authored
      This patch initializes t9 to the handler address, but only if the relocation
      model is pic. This handles the case where handler to which eh.return jumps 
      points to the start of the function.
      
      Patch by Sasa Stankovic.
      
      llvm-svn: 178588
      023c678a
    • Eric Christopher's avatar
      Support and test template arguments for unions. · 6476f908
      Eric Christopher authored
      llvm-svn: 178586
      6476f908
    • NAKAMURA Takumi's avatar
      llvm/test/CodeGen/X86: Unmark them out of XFAIL:cygming, in atomic{32|64}.ll... · fc613f4d
      NAKAMURA Takumi authored
      llvm/test/CodeGen/X86: Unmark them out of XFAIL:cygming, in atomic{32|64}.ll and handle-move.ll, corresponding to r178549.
      
      This reverts r176808, r176798, and r177914.
      
      llvm-svn: 178583
      fc613f4d
Loading