Skip to content
  1. Oct 29, 2013
  2. Oct 28, 2013
    • Akira Hatanaka's avatar
      [mips] Simplify LowerFormalArguments using getRegClassFor. · 7d82252d
      Akira Hatanaka authored
      No functionality change.
      
      llvm-svn: 193540
      7d82252d
    • Lang Hames's avatar
      Return early from getUnconditionalBranchTargetOpValue if the branch target is · b5281661
      Lang Hames authored
      an MCExpr, in order to avoid writing an encoded zero value in the immediate
      field.
      
      When getUnconditionalBranchTargetOpValue is called with an MCExpr target, we
      don't know what the final immediate field value should be. We shouldn't
      explicitly set the immediate field to an encoded zero value as zero is encoded
      with a non-zero bit pattern. This leads to bits being set that pollute the
      final immediate value. The nature of the encoding is such that the polluted
      bits only affect very large immediate values, explaining why this hasn't
      caused problems earlier.
      
      Fixes <rdar://problem/15155975>.
      
      llvm-svn: 193535
      b5281661
    • Logan Chien's avatar
      [arm] Implement eabi_attribute, cpu, and fpu directives. · 8cbb80d1
      Logan Chien authored
      This commit allows the ARM integrated assembler to parse
      and assemble the code with .eabi_attribute, .cpu, and
      .fpu directives.
      
      To implement the feature, this commit moves the code from
      AttrEmitter to ARMTargetStreamers, and several new test
      cases related to cortex-m4, cortex-r5, and cortex-a15 are
      added.
      
      Besides, this commit also change the Subtarget->isFPOnlySP()
      to Subtarget->hasD16() to match the usage of .fpu directive.
      
      This commit changes the test cases:
      
      * Several .eabi_attribute directives in
        2010-09-29-mc-asm-header-test.ll are removed because the .fpu
        directive already cover the functionality.
      
      * In the Cortex-A15 test case, the value for
        Tag_Advanced_SIMD_arch has be changed from 1 to 2,
        which is more precise.
      
      llvm-svn: 193524
      8cbb80d1
    • Richard Sandiford's avatar
      [SystemZ] Set usaAA to true · 094e6097
      Richard Sandiford authored
      useAA significantly improves the handling of vector code that has TBAA
      information attached.  It also helps other cases, as shown by the testsuite
      changes here.  The only real downside I've seen is that it interferes with
      MergeConsecutiveStores.  The problem is that that optimization works top
      down, starting at the first store in the chain, and looks for cases where
      the chain result is only used by a single related store.  These related
      stores don't alias, so useAA will have rewritten all the later stores to
      use a different chain input (typically the same one as the first store).
      
      I think the advantages outweigh the disadvantages though, so for now I've
      just disabled alias analysis for the unaligned-01.ll test.
      
      llvm-svn: 193521
      094e6097
    • NAKAMURA Takumi's avatar
      Prune utf8 chars in comments. · 8a046439
      NAKAMURA Takumi authored
      llvm-svn: 193512
      8a046439
    • NAKAMURA Takumi's avatar
      Prune trailing linefeeds. · 0b865d44
      NAKAMURA Takumi authored
      llvm-svn: 193511
      0b865d44
    • NAKAMURA Takumi's avatar
      Target/R600: Un-tab-ify. · 4bb85f90
      NAKAMURA Takumi authored
      llvm-svn: 193510
      4bb85f90
  3. Oct 27, 2013
  4. Oct 25, 2013
  5. Oct 24, 2013
    • David Peixotto's avatar
      Remove class abstraction from ARM struct byval lowering · b0653e53
      David Peixotto authored
      This commit changes the struct byval lowering for arm to use inline
      checks for the subtarget instead of a class abstraction to represent
      the differences. The class abstraction was judged to be too much
      code for this task.
      
      No intended functionality change.
      
      llvm-svn: 193357
      b0653e53
    • Tim Northover's avatar
      ARM: Mark double-precision instructions as such · 5620faf7
      Tim Northover authored
      This prevents us from silently accepting invalid instructions on (for example)
      Cortex-M4 with just single-precision VFP support.
      
      No tests for the extra Pat Requires because they're essentially assertions: the
      affected code should have been lowered to libcalls before ISel.
      
      rdar://problem/15302004
      
      llvm-svn: 193354
      5620faf7
    • Tim Northover's avatar
      ARM: add a couple more NEON predicates. · 225bcbbe
      Tim Northover authored
      The fused multiply instructions were added in VFPv4 but are still NEON
      instructions, in particular they shouldn't be available on a Cortex-M4 not
      matter how floaty it is.
      
      llvm-svn: 193342
      225bcbbe
    • Tim Northover's avatar
      ARM: mark various aliases with their architecture requirements. · 64dacb2b
      Tim Northover authored
      If an alias inherits directly from InstAlias then it doesn't get any default
      "Requires" values, so llvm-mc will allow it even on architectures that don't
      support the underlying instruction.
      
      This tidies up the obvious VFP and NEON cases I found.
      
      llvm-svn: 193340
      64dacb2b
    • Tim Northover's avatar
      ARM: Use non-VFP softcalls on embedded Darwinish targets · 94ecbd2e
      Tim Northover authored
      The compiler-rt functions __adddf3vfp and so on exist purely to allow Thumb1
      code to make use of VFP instructions by switching back to ARM mode, they make
      no sense for M-class processors which don't even have an ARM mode.
      
      Given that justification, in practice this is a platform ABI decision so the
      actual check is based on that rather than CPU features.
      
      rdar://problem/15302004
      
      llvm-svn: 193327
      94ecbd2e
    • Tim Northover's avatar
      ARM: fix assert on unpredictable POP instruction. · 741e6ef4
      Tim Northover authored
      POP instructions are aliased to the ARM LDM variants but have different syntax.
      This caused two problems: we tried to access a non-existent operand to annotate
      the '!', and the error message didn't make much sense.
      
      With some vigorous hand-waving in the error message both problems can be
      fixed.
      
      llvm-svn: 193322
      741e6ef4
    • Job Noorman's avatar
      Make sure SP is always aligned on a 2 byte boundary · a8d35c98
      Job Noorman authored
      llvm-svn: 193320
      a8d35c98
    • Amara Emerson's avatar
      [AArch64] Fix NZCV reg live-in bug in F128CSEL codegen. · c5cae0f2
      Amara Emerson authored
      When generating the IfTrue basic block during the F128CSEL pseudo-instruction
      handling, the NZCV live-in for the newly created BB wasn't being added. This
      caused a fault during MI-sched/live range calculation when the predecessor
      for the fall-through BB didn't have a live-in for phys-reg as expected.
      
      llvm-svn: 193316
      c5cae0f2
    • Elena Demikhovsky's avatar
      AVX-512: added VCVTPH2PS, VCVTPS2PH with intrinsics · dd0794e5
      Elena Demikhovsky authored
      llvm-svn: 193312
      dd0794e5
    • Yaron Keren's avatar
      (this is a corrected patch) · 79bb2663
      Yaron Keren authored
      Calling _chkstk is required on ELF as well as COFF on Windows. Without 
      _chkstk, functions requiring large stack crash in initialization code.
      
      Previous code tested for COFF format but not Mach-O and this patch modifies 
      the code to test for Windows OS (both Windows target and MingW target) 
      but not Mach-O object format: Looks like macho environment was used to 
      build some EFI code.
       
      Credits to Andrew MacPherson.
      
      llvm-svn: 193289
      79bb2663
  6. Oct 23, 2013
Loading