Skip to content
  1. Nov 07, 2013
  2. Nov 06, 2013
  3. Nov 05, 2013
    • Andrew Trick's avatar
      Slightly change the way stackmap and patchpoint intrinsics are lowered. · 6664df12
      Andrew Trick authored
      MorphNodeTo is not safe to call during DAG building. It eagerly
      deletes dependent DAG nodes which invalidates the NodeMap. We could
      expose a safe interface for morphing nodes, but I don't think it's
      worth it. Just create a new MachineNode and replaceAllUsesWith.
      
      My understaning of the SD design has been that we want to support
      early target opcode selection. That isn't very well supported, but
      generally works. It seems reasonable to rely on this feature even if
      it isn't widely used.
      
      llvm-svn: 194102
      6664df12
    • Reed Kotler's avatar
      Get rid of all references to soimm in MipsConstantIslands pass because · b09ebe93
      Reed Kotler authored
      we don't have such an operand.
      Suprisingly enough, this is never actually accounted for in the 
      ARM version when determining offset ranges. In both places there is the
      comment:
      -    // FIXME: Make use full range of soimm values.
      (soimm = shift operand immediate).
      
      llvm-svn: 194101
      b09ebe93
    • Reed Kotler's avatar
      Cleanup getUserOffset. Issues related to inline assembler length and · 0eb87390
      Reed Kotler authored
      alignment will be handled differently than in ARM constant islands.
      
      llvm-svn: 194096
      0eb87390
    • Tim Northover's avatar
      ARM: permit bare dmb/dsb/isb aliases on Cortex-M0 · f02287db
      Tim Northover authored
      Cortex-M0 supports these 32-bit instructions despite being Thumb1 only
      (mostly). We knew about that but not that the aliases without the default "sy"
      operand were also permitted.
      
      llvm-svn: 194094
      f02287db
    • Rafael Espindola's avatar
      Use error_code in GVMaterializer. · 2b11ad4f
      Rafael Espindola authored
      They just propagate out the bitcode reader error, so we don't need a new enum.
      
      llvm-svn: 194091
      2b11ad4f
    • Jiangning Liu's avatar
      d7c52676
    • Rafael Espindola's avatar
      Convert FindFunctionInStream to return an error_code. · 7d712031
      Rafael Espindola authored
      llvm-svn: 194084
      7d712031
    • Michael Gottesman's avatar
      [objc-arc] Convert the one directional retain/release relation assert to a... · 24b2f6fd
      Michael Gottesman authored
      [objc-arc] Convert the one directional retain/release relation assert to a conditional check + fail.
      
      Due to the previously added overflow checks, we can have a retain/release
      relation that is one directional. This occurs specifically when we run into an
      additive overflow causing us to drop state in only one direction. If that
      occurs, we should bail and not optimize that retain/release instead of
      asserting.
      
      Apologies for the size of the testcase. It is necessary to cause the additive
      cfg overflow to trigger.
      
      rdar://15377890
      
      llvm-svn: 194083
      24b2f6fd
    • Benjamin Kramer's avatar
      Silence GCC warning about dropping off a fully covered switch. · 77db1636
      Benjamin Kramer authored
      llvm-svn: 194077
      77db1636
    • Reed Kotler's avatar
      Remove the word "thumb" from comments. Remove also an incorrect · 4d0313d8
      Reed Kotler authored
      command regarding the porting from the ARM version (was an old comment).
      
      llvm-svn: 194066
      4d0313d8
    • David Majnemer's avatar
      X86 Disassembler: remove unused bool typedef-name · 64582671
      David Majnemer authored
      llvm-svn: 194062
      64582671
    • Reed Kotler's avatar
      Fix r194019 as requested by Eric Christopher. · 0f007fc4
      Reed Kotler authored
      Submit the basic port of the rest of ARM constant islands code to Mips. 
      Two test cases are added which reflect the next level of functionality:
      constants getting moved to water areas that are out of range from the
      initial placement at the end of the function and basic blocks being split to
      create water when none exists that can be used. There is a bunch of this
      code that is not complete and has been marked with IN_PROGRESS. I will
      finish cleaning this all up during the next week or two and submit the
      rest of the test cases. I have elminated some code for dealing with
      inline assembly because to me it unecessarily complicates things and
      some of the newer features of llvm like function attributies and builtin
      assembler give me better tools to solve the alignment issues created
      there. Also, for Mips16 I even have the option of not doing constant
      islands in the present of inline assembler if I chose. When everything
      has been completed I will summarize the port and notify people that
      are knowledgable regarding the ARM Constant Islands code so they can
      review it in it's entirety if they wish.
      
      llvm-svn: 194053
      0f007fc4
    • Craig Topper's avatar
    • Hao Liu's avatar
      Implement AArch64 post-index vector load/store multiple N-element structure... · d6b40b51
      Hao Liu authored
      Implement AArch64 post-index vector load/store multiple N-element structure class SIMD(lselem-post).
      Including following 14 instructions:
      4 ld1 insts: post-index load multiple 1-element structure to sequential 1/2/3/4 registers.
      ld2/ld3/ld4: post-index load multiple N-element structure to sequential N registers (N=2,3,4).
      4 st1 insts: post-index store multiple 1-element structure from sequential 1/2/3/4 registers.
      st2/st3/st4: post-index store multiple N-element structure from sequential N registers (N = 2,3,4).
      
      llvm-svn: 194043
      d6b40b51
    • Kevin Qin's avatar
      Implemented aarch64 neon intrinsic vcopy_lane with float type. · 97f6aaa8
      Kevin Qin authored
      llvm-svn: 194041
      97f6aaa8
    • Yuchen Wu's avatar
      Revert "llvm-cov: Added command-line option to change dir." · e68c5f82
      Yuchen Wu authored
      This reverts commit d8acf0078cf363252727acff00f85ae8074f95b3.
      
      llvm-svn: 194040
      e68c5f82
    • Yuchen Wu's avatar
      llvm-cov: Added command-line option to change dir. · 446e991f
      Yuchen Wu authored
      This will allow for much easier testing when the input files are in a
      different folder from the test script.
      
      llvm-svn: 194034
      446e991f
    • Yuchen Wu's avatar
      Support for reading run counts in llvm-cov. · 30672d90
      Yuchen Wu authored
      This patch enables llvm-cov to correctly output the run count stored in
      the GCDA file. GCOVProfiling currently does not generate this
      information, so the GCDA run data had to be hacked on from a GCDA file
      generated by gcc. This is corrected by a subsequent patch.
      
      With the run and program data included, both llvm-cov and gcov produced
      the same output.
      
      llvm-svn: 194033
      30672d90
    • Hal Finkel's avatar
      Add a runtime unrolling parameter to the LoopUnroll pass constructor · 081eaef6
      Hal Finkel authored
      As with the other loop unrolling parameters (the unrolling threshold, partial
      unrolling, etc.) runtime unrolling can now also be controlled via the
      constructor. This will be necessary for moving non-trivial unrolling late in
      the pass manager (after loop vectorization).
      
      No functionality change intended.
      
      llvm-svn: 194027
      081eaef6
    • NAKAMURA Takumi's avatar
      Revert r194019 to r194021, "Submit the basic port of the rest of ARM constant... · 5267613e
      NAKAMURA Takumi authored
      Revert r194019 to r194021, "Submit the basic port of the rest of ARM constant islands code to Mips."
      
      It broke -Asserts build.
      
      llvm-svn: 194026
      5267613e
    • Tim Northover's avatar
      ARM: remove unnecessary state-tracking during frame lowering. · c9432eb9
      Tim Northover authored
      ResolveFrameIndex had what appeared to be a very nasty hack for when the
      frame-index referred to a callee-saved register. In this case it "adjusted" the
      offset so that the address was correct if (and only if) the MachineInstr
      immediately followed the respective push.
      
      This "worked" for all forms of GPR & DPR but was only ever used to set the
      frame pointer itself, and once this was put in a more sensible location the
      entire state-tracking machinery it relied on became redundant. So I stripped
      it.
      
      The only wrinkle is that "add r7, sp, #0" might theoretically be slower (need
      an actual ALU slot) compared to "mov r7, sp" so I added a micro-optimisation
      that also makes emitARMRegUpdate and emitT2RegUpdate also work when NumBytes ==
      0.
      
      No test changes since there shouldn't be any functionality change.
      
      llvm-svn: 194025
      c9432eb9
    • Tim Northover's avatar
      AArch64: use default asm operand printing when modifier inapplicable · ace0bd4d
      Tim Northover authored
      If an inline assembly operand has multiple constraints (e.g. "Ir" for immediate
      or register) and an operand modifier (E.g. "w" for "print register as wN") then
      we need to decide behaviour when the modifier doesn't apply to the constraint.
      
      Previousely produced some combination of an assertion failure and a fatal
      error. GCC's behaviour appears to be to ignore the modifier and print the
      operand in the default way. This patch should implement that.
      
      llvm-svn: 194024
      ace0bd4d
  4. Nov 04, 2013
    • Reed Kotler's avatar
      Make sure we don't get a warning from this variable that is only used · 7f601b9a
      Reed Kotler authored
      when compiling with DEBUG.
      
      llvm-svn: 194021
      7f601b9a
    • Reed Kotler's avatar
      Submit the basic port of the rest of ARM constant islands code to Mips. · 526804f7
      Reed Kotler authored
      Two test cases are added which reflect the next level of functionality:
      constants getting moved to water areas that are out of range from the
      initial placement at the end of the function and basic blocks being split to
      create water when none exists that can be used. There is a bunch of this
      code that is not complete and has been marked with IN_PROGRESS. I will
      finish cleaning this all up during the next week or two and submit the
      rest of the test cases. I have elminated some code for dealing with
      inline assembly because to me it unecessarily complicates things and
      some of the newer features of llvm like function attributies and builtin
      assembler give me better tools to solve the alignment issues created
      there. Also, for Mips16 I even have the option of not doing constant
      islands in the present of inline assembler if I chose.
      
      llvm-svn: 194019
      526804f7
Loading