Skip to content
  1. Dec 14, 2016
    • Dylan McKay's avatar
      [AVR] Add the integrated testing tool to the .gitignore · cfd1ce6a
      Dylan McKay authored
      We build it as an LLVM tool.
      
      llvm-svn: 289645
      cfd1ce6a
    • Oliver Stannard's avatar
      [Assembler] Better error messages for .org directive · 268f42f1
      Oliver Stannard authored
      Currently, the error messages we emit for the .org directive when the
      expression is not absolute or is out of range do not include the line
      number of the directive, so it can be hard to track down the problem if
      a file contains many .org directives.
      
      This patch stores the source location in the MCOrgFragment, so that it
      can be used for diagnostics emitted during layout.
      
      Since layout is an iterative process, and the errors are detected during
      each iteration, it would have been possible for errors to be reported
      multiple times. To prevent this, I've made the assembler bail out after
      each iteration if any errors have been reported. This will still allow
      multiple unrelated errors to be reported in the common case where they
      are all detected in the first round of layout.
      
      Differential Revision: https://reviews.llvm.org/D27411
      
      llvm-svn: 289643
      268f42f1
    • Dylan McKay's avatar
      [AVR] Add a function instrumentation pass · 3abd1d3e
      Dylan McKay authored
      This will be used for an on-chip test suite.
      
      llvm-svn: 289641
      3abd1d3e
    • Craig Topper's avatar
      [X86][InstCombine] Handle demanded elements for operand of AVX-512 scalar... · aeaa52cc
      Craig Topper authored
      [X86][InstCombine] Handle demanded elements for operand of AVX-512 scalar floating point to integer conversion intrinsics.
      
      llvm-svn: 289639
      aeaa52cc
    • Hal Finkel's avatar
      [PowerPC] Fix logic dealing with nop after calls (and tail-call eligibility) · 065b7565
      Hal Finkel authored
      This change aims to unify and correct our logic for when we need to allow for
      the possibility of the linker adding a TOC restoration instruction after a
      call. This comes up in two contexts:
      
       1. When determining tail-call eligibility. If we make a tail call (i.e.
          directly branch to a function) then there is no place for the linker to add
          a TOC restoration.
       2. When determining when we need to add a nop instruction after a call.
          Likewise, if there is a possibility that the linker might need to add a
          TOC restoration after a call, then we need to put a nop after the call
          (the bl instruction).
      
      First problem: We were using similar, but different, logic to decide (1) and
      (2). This is just wrong. Both the resideInSameModule function (used when
      determining tail-call eligibility) and the isLocalCall function (used when
      deciding if the post-call nop is needed) were supposed to be determining the
      same underlying fact (i.e. might a TOC restoration be needed after the call).
      The same logic should be used in both places.
      
      Second problem: The logic in both places was wrong. We only know that two
      functions will share the same TOC when both functions come from the same
      section of the same object. Otherwise the linker might cause the functions to
      use different TOC base addresses (unless the multi-TOC linker option is
      disabled, in which case only shared-library boundaries are relevant). There are
      a number of factors that can cause functions to be placed in different sections
      or come from different objects (-ffunction-sections, explicitly-specified
      section names, COMDAT, weak linkage, etc.). All of these need to be checked.
      The existing logic only checked properties of the callee, but the properties of
      the caller must also be checked (for example, calling from a function in a
      COMDAT section means calling between sections).
      
      There was a conceptual error in the resideInSameModule function in that it
      allowed tail calls to functions with weak linkage and protected/hidden
      visibility. While protected/hidden visibility does prevent the function
      implementation from being replaced at runtime (via interposition), it does not
      prevent the linker from using an alternate implementation at link time (i.e.
      using some strong definition to replace the provided weak one during linking).
      If this happens, then we're still potentially looking at a required TOC
      restoration upon return.
      
      Otherwise, in general, the post-call nop is needed wherever ELF interposition
      needs to be supported. We don't currently support ELF interposition at the IR
      level (see http://lists.llvm.org/pipermail/llvm-dev/2016-November/107625.html
      for more information), and I don't think we should try to make it appear to
      work in the backend in spite of that fact. This will yield subtle bugs if
      interposition is attempted. As a result, regardless of whether we're in PIC
      mode, we don't assume that we need to add the nop to support the possibility of
      ELF interposition. However, the necessary check is in place (i.e. calling
      GV->isInterposable and TM.shouldAssumeDSOLocal) so when we have functions for
      which interposition is allowed at the IR level, we'll add the nop as necessary.
      In the mean time, we'll generate more tail calls and fewer nops when compiling
      position-independent code.
      
      Differential Revision: https://reviews.llvm.org/D27231
      
      llvm-svn: 289638
      065b7565
    • Craig Topper's avatar
      [X86][InstCombine] Teach SimplifyDemandedVectorElts to handle masked scalar... · 268b3abe
      Craig Topper authored
      [X86][InstCombine] Teach SimplifyDemandedVectorElts to handle masked scalar add/sub/mul/div/max/min intrinsics better.
      
      Now we can remove these intrinsics if element 0 isn't used. Also fix undef element tracking.
      
      llvm-svn: 289636
      268b3abe
    • Craig Topper's avatar
      [X86][InstCombine] Handle scalar fmadd intrinsics correctly in SimplifyDemandedVectorElts. · dfd268d7
      Craig Topper authored
      Now we pass a modified version of DemandedElts to each operand and we calculate undef elts correctly.
      
      llvm-svn: 289632
      dfd268d7
    • Mehdi Amini's avatar
      [ThinLTO] Add an API to trigger file-based API for returning objects to the linker · 8e13bc45
      Mehdi Amini authored
      Summary:
      The motivation is to support better the -object_path_lto option on
      Darwin. The linker needs to write down the generate object files on
      disk for later use by lldb or dsymutil (debug info are not present
      in the final binary). We're moving this into libLTO so that we can
      be smarter when a cache is enabled and hard-link when possible
      instead of duplicating the files.
      
      Reviewers: tejohnson, deadalnix, pcc
      
      Subscribers: dexonsmith, llvm-commits
      
      Differential Revision: https://reviews.llvm.org/D27507
      
      llvm-svn: 289631
      8e13bc45
    • Craig Topper's avatar
      [X86][InstCombine] Teach SimplifyDemandedVectorElts to handle scalar round... · eb6a20e7
      Craig Topper authored
      [X86][InstCombine] Teach SimplifyDemandedVectorElts to handle scalar round intrinsics more correctly.
      
      Now we only pass bit 0 of the DemandedElts to optimize operand 1 as we recurse since the upper bits are unused. Similarly we clear bit 0 for optimizing operand 0.
      
      Also calculate UndefElts correctly.
      
      Simplify InstCombineCalls for these instrinics to just call SimplifyDemandedVectorElts for the call instrution to reuse this support.
      
      llvm-svn: 289629
      eb6a20e7
    • Craig Topper's avatar
      [X86][InstCombine] Teach SimplifyDemandedVectorElts to handle scalar... · a0372dec
      Craig Topper authored
      [X86][InstCombine] Teach SimplifyDemandedVectorElts to handle scalar min/max/cmp intrinsics more correctly.
      
      Now we only pass bit 0 of the DemandedElts to optimize operand 1 as we recurse since the upper bits are unused.
      
      Also calculate UndefElts correctly.
      
      Simplify InstCombineCalls for these instrinics to just call SimplifyDemandedVectorElts for the call instrution to reuse this support.
      
      llvm-svn: 289628
      a0372dec
    • Mehdi Amini's avatar
      Don't double-initialize cl::opt for iterating in reverse order to uncover... · 76a00b51
      Mehdi Amini authored
      Don't double-initialize cl::opt for iterating in reverse order to uncover non-determinism in codegen by default
      
      Bots are broken and needs to be fixed before having this on by default.
      The feature was committed in r289619.
      
      I tried to disable it in r289624 and failed because it was initialized in two places.
      
      llvm-svn: 289626
      76a00b51
    • Mehdi Amini's avatar
      Disable Iterating SmallPtrSet in reverse order to uncover non-determinism in codegen by default · fd1184ef
      Mehdi Amini authored
      Bots are broken and needs to be fixed before having this on by default.
      The feature was committed in r289619.
      
      llvm-svn: 289624
      fd1184ef
    • Kostya Serebryany's avatar
      [libFuzzer] document one more desired feature of a fuzz target · 8efb35b4
      Kostya Serebryany authored
      llvm-svn: 289622
      8efb35b4
    • Peter Collingbourne's avatar
      LTO: Add support for multi-module bitcode files. · 1a0720e8
      Peter Collingbourne authored
      Differential Revision: https://reviews.llvm.org/D27313
      
      llvm-svn: 289621
      1a0720e8
    • Paul Robinson's avatar
      [DWARF] Preserve column number when emitting 'line 0' record · 8fec3da0
      Paul Robinson authored
      Follow-up to r289256, address a FIXME to avoid resetting the column
      number. This reduced .debug_line by 2.6% in a RelWithDebInfo
      self-build of clang.
      
      llvm-svn: 289620
      8fec3da0
    • Mandeep Singh Grang's avatar
      [llvm] Iterate SmallPtrSet in reverse order to uncover non-determinism in codegen · f6b069c7
      Mandeep Singh Grang authored
      Summary:
      Given a flag (-mllvm -reverse-iterate) this patch will enable iteration of SmallPtrSet in reverse order.
      The idea is to compile the same source with and without this flag and expect the code to not change.
      If there is a difference in codegen then it would mean that the codegen is sensitive to the iteration order of SmallPtrSet.
      This is enabled only with LLVM_ENABLE_ABI_BREAKING_CHECKS.
      
      Reviewers: chandlerc, dexonsmith, mehdi_amini
      
      Subscribers: mgorny, emaste, llvm-commits
      
      Differential Revision: https://reviews.llvm.org/D26718
      
      llvm-svn: 289619
      f6b069c7
    • Evandro Menezes's avatar
      [ARM] Fix typo in checking prefix · 54eb192b
      Evandro Menezes authored
      llvm-svn: 289617
      54eb192b
    • Evandro Menezes's avatar
      Add support for Samsung Exynos M3 (NFC) · aeec780e
      Evandro Menezes authored
      llvm-svn: 289613
      aeec780e
    • Greg Clayton's avatar
      Update the header docs to match a recent checkin. · 74c265e5
      Greg Clayton authored
      llvm-svn: 289612
      74c265e5
    • Greg Clayton's avatar
      Switch functions that returned bool and filled in a DWARFFormValue arg with... · 1cbf3fa9
      Greg Clayton authored
      Switch functions that returned bool and filled in a DWARFFormValue arg with ones that return Optional<DWARFFormValue>
      
      Differential Revision: https://reviews.llvm.org/D27737
      
      llvm-svn: 289611
      1cbf3fa9
    • Peter Collingbourne's avatar
      llvm-cat: Allow bitcode files to be created with no modules. · 98d40e05
      Peter Collingbourne authored
      llvm-svn: 289610
      98d40e05
    • Chris Bieneman's avatar
      [llvm-config] Fixing one check where shared libs implied dylib · da1c84c0
      Chris Bieneman authored
      We shouldn't print the dylib if LinkDylib is false.
      
      llvm-svn: 289609
      da1c84c0
    • Derek Schuff's avatar
      llvm-config: Set LinkMode in addition to LinkDyLib when using --ignore-llvm · 7ff587a9
      Derek Schuff authored
      Summary:
      LinkDyLib is only used (before arg processing) to set up the default for
      LinkMode. So reset LinkMode as well, and process before --link-shared or
      --link-static to allow those flags to continue to override it.
      
      Reviewers: beanz
      
      Subscribers: llvm-commits
      
      Differential Revision: https://reviews.llvm.org/D27736
      
      llvm-svn: 289608
      7ff587a9
  2. Dec 13, 2016
Loading