Skip to content
  1. Jan 30, 2014
  2. Jan 29, 2014
    • Eric Christopher's avatar
      If we use DW_AT_ranges we need to specify a base address that ranges · 8873adaa
      Eric Christopher authored
      are relative to in the compile unit. Currently let's just use 0...
      
      Thanks to Greg Clayton for the catch!
      
      llvm-svn: 200425
      8873adaa
    • Eric Christopher's avatar
      Turn on CU ranges if we've got multiple compile units in the same · fb8dd008
      Eric Christopher authored
      module since there's no range guarantee that we could make given
      output order. This also fixes up the testcases that have multiple
      CUs to have the correct range offset.
      
      llvm-svn: 200422
      fb8dd008
    • Eric Christopher's avatar
      Make the compile unit map a MapVector so that we can assume a stable · 179fba19
      Eric Christopher authored
      output ordering.
      
      llvm-svn: 200421
      179fba19
    • Eric Christopher's avatar
      Fix formatting of comment. · 95531b69
      Eric Christopher authored
      llvm-svn: 200420
      95531b69
    • David Majnemer's avatar
      MC: Better management of macro arguments · 91fc4c21
      David Majnemer authored
      The linux kernel makes uses of a GAS `feature' which substitutes nothing
      for macro arguments which aren't specified.
      
      Proper support for these kind of macro arguments necessitated a cleanup of
      differences between `GAS' and `Darwin' dialect macro processing.
      
      Differential Revision: http://llvm-reviews.chandlerc.com/D2634
      
      llvm-svn: 200409
      91fc4c21
    • Jordan Rose's avatar
      [CommandLine] Aliases require an value if their target requires a value. · c25b0c7e
      Jordan Rose authored
      This can still be overridden by explicitly setting a value requirement on the
      alias option, but by default it should be the same.
      
      PR18649
      
      llvm-svn: 200407
      c25b0c7e
    • Lang Hames's avatar
      Add support for PC-relative non-extern relocations to RuntimeDyldMachO. · 2cbbdf41
      Lang Hames authored
      Also replaces testcase for r180790 (support for absolute non-externs relocs)
      with a more robust version.
      
      <rdar://problem/15864721>
      
      llvm-svn: 200404
      2cbbdf41
    • Quentin Colombet's avatar
      9e16c8ac
    • Oliver Stannard's avatar
      Test commit · 8f85994a
      Oliver Stannard authored
      llvm-svn: 200401
      8f85994a
    • Matheus Almeida's avatar
      [mips][msa] Add fill.d instruction. · ec079d9e
      Matheus Almeida authored
      This instruction is only available on Mips64 cores
      that implement the MSA ASE.
      
      llvm-svn: 200400
      ec079d9e
    • Matheus Almeida's avatar
      [mips][msa] Add copy_{u,s}.d. · 74070327
      Matheus Almeida authored
      These instructions are only available on Mips64 cores
      that implement the MSA ASE.
      
      llvm-svn: 200398
      74070327
    • Chandler Carruth's avatar
      [LPM] Fix PR18643, another scary place where loop transforms failed to · d4be9dc0
      Chandler Carruth authored
      preserve loop simplify of enclosing loops.
      
      The problem here starts with LoopRotation which ends up cloning code out
      of the latch into the new preheader it is buidling. This can create
      a new edge from the preheader into the exit block of the loop which
      breaks LoopSimplify form. The code tries to fix this by splitting the
      critical edge between the latch and the exit block to get a new exit
      block that only the latch dominates. This sadly isn't sufficient.
      
      The exit block may be an exit block for multiple nested loops. When we
      clone an edge from the latch of the inner loop to the new preheader
      being built in the outer loop, we create an exiting edge from the outer
      loop to this exit block. Despite breaking the LoopSimplify form for the
      inner loop, this is fine for the outer loop. However, when we split the
      edge from the inner loop to the exit block, we create a new block which
      is in neither the inner nor outer loop as the new exit block. This is
      a predecessor to the old exit block, and so the split itself takes the
      outer loop out of LoopSimplify form. We need to split every edge
      entering the exit block from inside a loop nested more deeply than the
      exit block in order to preserve all of the loop simplify constraints.
      
      Once we try to do that, a problem with splitting critical edges
      surfaces. Previously, we tried a very brute force to update LoopSimplify
      form by re-computing it for all exit blocks. We don't need to do this,
      and doing this much will sometimes but not always overlap with the
      LoopRotate bug fix. Instead, the code needs to specifically handle the
      cases which can start to violate LoopSimplify -- they aren't that
      common. We need to see if the destination of the split edge was a loop
      exit block in simplified form for the loop of the source of the edge.
      For this to be true, all the predecessors need to be in the exact same
      loop as the source of the edge being split. If the dest block was
      originally in this form, we have to split all of the deges back into
      this loop to recover it. The old mechanism of doing this was
      conservatively correct because at least *one* of the exiting blocks it
      rewrote was the DestBB and so the DestBB's predecessors were fixed. But
      this is a much more targeted way of doing it. Making it targeted is
      important, because ballooning the set of edges touched prevents
      LoopRotate from being able to split edges *it* needs to split to
      preserve loop simplify in a coherent way -- the critical edge splitting
      would sometimes find the other edges in need of splitting but not
      others.
      
      Many, *many* thanks for help from Nick reducing these test cases
      mightily. And helping lots with the analysis here as this one was quite
      tricky to track down.
      
      llvm-svn: 200393
      d4be9dc0
    • Renato Golin's avatar
      Enable EHABI by default · 8cea6e8f
      Renato Golin authored
      After all hard work to implement the EHABI and with the test-suite
      passing, it's time to turn it on by default and allow users to
      disable it as a work-around while we fix the eventual bugs that show
      up.
      
      This commit also remove the -arm-enable-ehabi-descriptors, since we
      want the tables to be printed every time the EHABI is turned on
      for non-Darwin ARM targets.
      
      Although MCJIT EHABI is not working yet (needs linking with the right
      libraries), this commit also fixes some relocations on MCJIT regarding
      the EH tables/lib calls, and update some tests to avoid using EH tables
      when none are needed.
      
      The EH tests in the test-suite that were previously disabled on ARM
      now pass with these changes, so a follow-up commit on the test-suite
      will re-enable them.
      
      llvm-svn: 200388
      8cea6e8f
    • Venkatraman Govindaraju's avatar
      [Sparc] Use %r_disp32 for pc_rel entries in FDE as well. · 141d0e22
      Venkatraman Govindaraju authored
      This makes MCAsmInfo::getExprForFDESymbol() a virtual function and overrides it in SparcMCAsmInfo.
      
      llvm-svn: 200376
      141d0e22
    • NAKAMURA Takumi's avatar
      Revert r200340, "Add line table debug info to COFF files when using a win32 triple." · b366f01f
      NAKAMURA Takumi authored
      It was incompatible with --target=i686-win32.
      
      llvm-svn: 200375
      b366f01f
    • Venkatraman Govindaraju's avatar
      [Sparc] Use %r_disp32 for pc_rel entries in gcc_except_table and eh_frame. · fd5c1f94
      Venkatraman Govindaraju authored
      Otherwise, assembler (gas) fails to assemble them with error message "operation
      combines symbols in different segments". This is because MC computes
      pc_rel entries with subtract expression between labels from different sections.
      
      llvm-svn: 200373
      fd5c1f94
    • Chandler Carruth's avatar
      [LPM] Fix PR18642, a pretty nasty bug in IndVars that "never mattered" · 66f0b163
      Chandler Carruth authored
      because of the inside-out run of LoopSimplify in the LoopPassManager and
      the fact that LoopSimplify couldn't be "preserved" across two
      independent LoopPassManagers.
      
      Anyways, in that case, IndVars wasn't correctly preserving an LCSSA PHI
      node because it thought it was rewriting (via SCEV) the incoming value
      to a loop invariant value. While it may well be invariant for the
      current loop, it may be rewritten in terms of an enclosing loop's
      values. This in and of itself is fine, as the LCSSA PHI node in the
      enclosing loop for the inner loop value we're rewriting will have its
      own LCSSA PHI node if used outside of the enclosing loop. With me so
      far?
      
      Well, the current loop and the enclosing loop may share an exiting
      block and exit block, and when they do they also share LCSSA PHI nodes.
      In this case, its not valid to RAUW through the LCSSA PHI node.
      
      Expected crazy test included.
      
      llvm-svn: 200372
      66f0b163
    • Arnold Schwaighofer's avatar
      LoopVectorizer: Don't count the induction variable multiple times · 1aab75ab
      Arnold Schwaighofer authored
      When estimating register pressure, don't count the induction variable mulitple
      times. It is unlikely to be unrolled. This is currently disabled and hidden
      behind a flag ("enable-ind-var-reg-heur").
      
      llvm-svn: 200371
      1aab75ab
    • Venkatraman Govindaraju's avatar
      [SparcV9] Use correct register class (I64RegClass) to hold the address of ... · 50f32d94
      Venkatraman Govindaraju authored
      [SparcV9] Use correct register class (I64RegClass) to hold the address of  _GLOBAL_OFFSET_TABLE_ in sparcv9.
      
      llvm-svn: 200368
      50f32d94
    • Rafael Espindola's avatar
      Use a raw_stream to implement the mangler. · 310f501e
      Rafael Espindola authored
      This is a bit more convenient for some callers, but more importantly, it is
      easier to implement correctly. Doing this removes the patching of already
      printed data that was used for fastcall, fixing a crash with private fastcall
      symbols.
      
      llvm-svn: 200367
      310f501e
    • Kevin Qin's avatar
      [AArch64 NEON] Lower SELECT_CC with vector operand. · 92d64d2d
      Kevin Qin authored
      When the scalar compare is between floating point and operands are
      vector, we custom lower SELECT_CC to use NEON SIMD compare for
      generating less instructions.
      
      llvm-svn: 200365
      92d64d2d
    • Mark Seaborn's avatar
      Remove unnecessary call to pthread_mutexattr_setpshared() · efe919ff
      Mark Seaborn authored
      The default value of this attribute is PTHREAD_PROCESS_PRIVATE, so
      there's no point in calling pthread_mutexattr_setpshared() to set
      that.
      
      See: http://pubs.opengroup.org/onlinepubs/9699919799/functions/pthread_mutexattr_getpshared.html
      
      This removes some ifdefs that tend to need to be extended for other
      platforms (e.g. for NaCl).
      
      Note that this call was in the first implementation of Mutex, added in
      r22403, so it doesn't appear to have been added in response to a
      performance problem.
      
      Differential Revision: http://llvm-reviews.chandlerc.com/D2633
      
      llvm-svn: 200360
      efe919ff
    • David Majnemer's avatar
      MC: Clean up error paths in AsmParser::parseMacroArgument · 1625245b
      David Majnemer authored
      Use an RAII object Instead of inserting a call to
      AsmLexer::setSkipSpace(true) in all error paths.
      
      No functional change.
      
      llvm-svn: 200358
      1625245b
    • Rafael Espindola's avatar
      Make createObjectFile's signature a bit less error prone. · c3ceeb6f
      Rafael Espindola authored
      This will be better with c++11, but right now file_magic converts to bool,
      which makes the api really easy to misuse.
      
      llvm-svn: 200357
      c3ceeb6f
    • David Woodhouse's avatar
      [Sparc] Fix breakage in r200345 · a86694ca
      David Woodhouse authored
      Oops. Don't do build tests on patches like that with --enable-targets=x86_64
      
      llvm-svn: 200355
      a86694ca
    • David Woodhouse's avatar
      Delete MCSubtargetInfo data members from target MCCodeEmitter classes · d2cca113
      David Woodhouse authored
      The subtarget info is explicitly passed to the EncodeInstruction
      method and we should use that subtarget info to influence any
      encoding decisions.
      
      llvm-svn: 200350
      d2cca113
    • David Woodhouse's avatar
      3fa98a65
Loading