Skip to content
  1. Jan 27, 2017
    • Pavel Labath's avatar
      Address post-commit review remarks · 095d6b8f
      Pavel Labath authored
      Tamas pointed out that the macro name I used in r293282 was too vague.
      Rename it to better reflect what it is used for.
      
      llvm-svn: 293287
      095d6b8f
    • Anastasia Stulova's avatar
      [OpenCL] Add missing address spaces in IR generation of blocks · af0a7bbb
      Anastasia Stulova authored
      Modify ObjC blocks impl wrt address spaces as follows:
      
      - keep default private address space for blocks generated
      as local variables (with captures);
      
      - add global address space for global block literals (no captures);
      
      - make the block invoke function and enqueue_kernel prototype with
      the generic AS block pointer parameter to accommodate both 
      private and global AS cases from above;
      
      - add block handling into default AS because it's implemented as
      a special pointer type (BlockPointer) in the frontend and therefore
      it is used as a pointer everywhere. This is also needed to accommodate
      both private and global AS blocks for the two cases above.
      
      - removes ObjC RT specific symbols (NSConcreteStackBlock and
      NSConcreteGlobalBlock) in the OpenCL mode.
      
      Review: https://reviews.llvm.org/D28814
      llvm-svn: 293286
      af0a7bbb
    • Simon Dardis's avatar
      [mips] Add support for static model on N64 · 9e962add
      Simon Dardis authored
      The patch teaches the Clang driver how to handle the N64 static
      relocation model properly. It enforces the correct target feature
      (+noabicalls) when -fno-pic is used. This is required as non-pic
      N64 code as the abi extension to call PIC code (CPIC) is unsupported.
      
      Make PIC the default for mips64 and mips64el, this affects both N32
      & N64 ABIs, to better match GCC.
      
      As part of this effort, clean up the assembler invocation command
      builder, so the correct flags are used.
      
      This and r293279 in LLVM resolves PR/23485.
      
      Thanks to Brooks Davis for reporting the issue!
      
      Reviewers: slthakur, seanbruno
      
      Differential Revision: https://reviews.llvm.org/D29031
      
      llvm-svn: 293285
      9e962add
    • Peter Smith's avatar
      [ELF][ARM] Use SyntheticSections for Thunks · 5191c6f9
      Peter Smith authored
          
      Thunks are now implemented by redirecting the relocation to the
      symbol S, to a symbol TS in a Thunk. The Thunk will transfer control
      to S. This has the following implications:
      - All the side-effects of Thunks happen within createThunks()
      - Thunks are no longer stored in InputSections and Symbols no longer
        need to hold a pointer to a Thunk
      - The synthetic Thunk sections need to be merged into OutputSections
          
      This implementation is almost a direct conversion of the existing
      Thunks with the following exceptions:
      - Mips LA25 Thunks are placed before the InputSection that defines
        the symbol that needs a Thunk.
      - All ARM Thunks are placed at the end of the OutputSection of the
        first caller to the Thunk.
          
      Range extension Thunks are not supported yet so it is optimistically
      assumed that all Thunks can be reused.
      
      Differential Revision:  https://reviews.llvm.org/D29129
      
      llvm-svn: 293283
      5191c6f9
    • Pavel Labath's avatar
      Fix android-i386 build broken by previous commit · 810055ee
      Pavel Labath authored
      I foolishly thought I could simplify the condition to cover all android
      targets. I was wrong - i386 headers don't define __NR_accept.
      
      Revert back to enabling the workaround on arm an mips only.
      
      llvm-svn: 293282
      810055ee
    • Pavel Labath's avatar
      Refactor the android accept hack · ef97630f
      Pavel Labath authored
      This moves the accept hack from the android toolchain file into
      LLDBConfig.cmake. This allows successful lldb android compilation
      without relying on our custom toolchain file.
      
      llvm-svn: 293281
      ef97630f
    • Artem Dergachev's avatar
      [analyzer] Consider function call arguments while building CallGraph. · 12caf8e1
      Artem Dergachev authored
      Function call can appear in the arguments of another function call, eg.:
      
        foo(bar());
      
      This patch adds support for such cases.
      
      Patch by Ivan Sidorenko!
      
      Differential revision: https://reviews.llvm.org/D28905
      
      llvm-svn: 293280
      12caf8e1
    • Simon Dardis's avatar
      [mips] Recommit: "N64 static relocation model support" · ca74dd79
      Simon Dardis authored
      This patch makes one change to GOT handling and two changes to N64's
      relocation model handling. Furthermore, the jumptable encodings have
      been corrected for static N64.
      
      Big GOT handling is now done via a new SDNode MipsGotHi - this node is
      unconditionally lowered to an lui instruction.
      
      The first change to N64's relocation handling is the lifting of the
      restriction that N64 always uses PIC. Now it is possible to target static
      environments.
      
      The second change adds support for 64 bit symbols and enables them by
      default. Previously N64 had patterns for sym32 mode only. In this mode all
      symbols are assumed to have 32 bit addresses. sym32 mode support
      is selectable with attribute 'sym32'. A follow on patch for clang will
      add the necessary frontend parameter.
      
      This partially resolves PR/23485.
      
      Thanks to Brooks Davis for reporting the issue!
      
      This version corrects a "Conditional jump or move depends on uninitialised
      value(s)" error detected by valgrind present in the original commit.
      
      Reviewers: dsanders, seanbruno, zoran.jovanovic, vkalintiris
      
      Differential Revision: https://reviews.llvm.org/D23652
      
      llvm-svn: 293279
      ca74dd79
    • Eugene Leviant's avatar
      [ELF] Fixed formatting. NFC · bcff495b
      Eugene Leviant authored
      llvm-svn: 293278
      bcff495b
    • Jonas Hahnfeld's avatar
      [libomptarget] Fix compilation with libc++ · cfe5ef58
      Jonas Hahnfeld authored
      iterator is only guaranteed to be default-constructible, without any argument.
      
      Differential Revision: https://reviews.llvm.org/D29171
      
      llvm-svn: 293277
      cfe5ef58
    • Eugene Leviant's avatar
      [ELF] Bypass section type check · 8b7cadcf
      Eugene Leviant authored
      Differential revision: https://reviews.llvm.org/D28761
      
      llvm-svn: 293276
      8b7cadcf
    • Simon Dardis's avatar
      [lld][mips] Correct tests for mips64 implying PIC. · 73190d39
      Simon Dardis authored
      Currently LLVM can only generate PIC code for MIPS64 with the N64 as
      it uses the idiom "isPositionIndependent() || IsABI_N64()" throughout the
      MIPS backend. r293164 changed this, causing test failures for LLD.
      
      This patch changes the tests minimally to preserve existing test coverage
      and one case where the test was "right" in the wrong circumstance.
      
      Reviewers: atanasyan
      
      Differential Revision: https://reviews.llvm.org/D29194
      
      llvm-svn: 293275
      73190d39
    • Alexey Bataev's avatar
      [SLP] Refactoring of horizontal reduction analysis, NFC. · 4015bf83
      Alexey Bataev authored
      Some checks in SLP horizontal reduction analysis function are performed
      several times, though it is enough to perform these checks only once
      during an initial attempt at adding candidate for the reduction
      instruction/reduced value.
      
      Differential Revision: https://reviews.llvm.org/D29175
      
      llvm-svn: 293274
      4015bf83
    • Chandler Carruth's avatar
      [LICM] When we are recomputing the alias sets for a subloop, we cannot · fd2d7c72
      Chandler Carruth authored
      skip sub-subloops.
      
      The logic to skip subloops dated from when this code was shared with the
      cached case. Once it was factored out to only run in the case of
      recomputed subloops it became a dangerous bug. If a subsubloop contained
      an interfering instruction it would be silently skipped from the alias
      sets for LICM.
      
      With the old pass manager this was extremely hard to trigger as it would
      require failing to visit these subloops with the LICM pass but then
      visiting the outer loop somehow. I've not yet contrived any test case
      that actually manages to trigger this.
      
      But with the new pass manager we don't do the cross-loop caching hack
      that the old PM does and so we recompute alias set information from
      first principles. While this seems much cleaner and simpler it exposed
      this bug and would subtly miscompile code due to failing to correctly
      model the aliasing constraints of deeply nested loops.
      
      llvm-svn: 293273
      fd2d7c72
    • Martin Probst's avatar
      clang-format: [JS] do not format MPEG transport streams. · fa37b18f
      Martin Probst authored
      Summary:
      The MPEG transport stream file format also uses ".ts" as its file extension.
      This change detects its specific framing format (0x47 every 189 bytes) and
      simply ignores MPEG TS files.
      
      Reviewers: djasper, sammccall
      
      Subscribers: klimek, cfe-commits
      
      Differential Revision: https://reviews.llvm.org/D29186
      
      llvm-svn: 293270
      fa37b18f
    • Boris Ulasevich's avatar
    • Jonas Paulsson's avatar
      [DAGTypeLegalizer] Handle SIGN/ZERO_EXTEND in WidenVecRes_Convert(). · bb0ed3e7
      Jonas Paulsson authored
      In case of a SIGN/ZERO_EXTEND of an incomplete vector type (using only a
      partial number of available vector elements), WidenVecRes_Convert() used to
      resort to scalarization.
      
      This patch adds a handling of the (common) case where an input vector can be
      found of same width as the widened result vector, by converting the node to
      SIGN/ZERO_EXTEND_VECTOR_INREG.
      
      Review: Eli Friedman
      llvm-svn: 293268
      bb0ed3e7
    • Diana Picus's avatar
      Revert "Implement a new clang-tidy check that suggests users replace dynamic... · 91415017
      Diana Picus authored
      Revert "Implement a new clang-tidy check that suggests users replace dynamic exception specifications with noexcept exception specifications."
      
      This reverts commit r293217, its follow-up 293218 and part of 293234 because it
      broke all bots that build clang-tools-extra.
      
      llvm-svn: 293267
      91415017
    • Adam Nemet's avatar
      [opt-viewer] Introduce global context · 572fca71
      Adam Nemet authored
      This is necessary since globals (max_hotness, caller_loc) need to be
      explicitly passed to the subprocesses.
      
      llvm-svn: 293266
      572fca71
    • Adam Nemet's avatar
      [opt-viewer] Remove message from the key · 07f1264b
      Adam Nemet authored
      This is causing problems because the rendering of the text will depend on
      varying global state to show relative hotness or a link in the inlining
      context.
      
      llvm-svn: 293265
      07f1264b
    • Adam Nemet's avatar
      [opt-viewer] Unique across the different jobs as well · 41cf9b27
      Adam Nemet authored
      llvm-svn: 293264
      41cf9b27
    • Adam Nemet's avatar
      [opt-viewer] Make sorting for the index page deterministic · 4f075e3c
      Adam Nemet authored
      Break the tie between entries with identical hotness deterministically.
      
      llvm-svn: 293263
      4f075e3c
    • Adam Nemet's avatar
      [opt-viewer] Include the function in the remark key · 742615e5
      Adam Nemet authored
      Avoid uniquing remarks with different the inlining context (Function).
      
      llvm-svn: 293262
      742615e5
    • Adam Nemet's avatar
      [opt-viewer] Put critical items in parallel · 55bfb497
      Adam Nemet authored
      Summary:
      Put opt-viewer critical items in parallel
      
      Patch by Brian Cain!
      
      Requires features from Python 2.7
      
      **Performance**
      Below are performance results across various configurations. These were taken on an i5-5200U (dual core + HT). They were taken with a small subset of the YAML output of building Python 3.6.0b3 with LTO+PGO. 60 YAML files.
      
      "multiprocessing" is the current submission contents. "baseline" is as of 544f14c6b2a07a94168df31833dba9dc35fd8289 (I think this is aka r287505).
      
      "ImportError" vs "class<...CLoader>" below are just confirming the expected configuration (with/without CLoader).
      
      The below was measured on AMD A8-5500B (4 cores) with 224 input YAML files, showing a ~1.75x speed increase over the baseline with libYAML.  I suspect it would scale well on high-end servers.
      
      ```
      **************************************** MULTIPROCESSING ****************************************
      PyYAML:
              Traceback (most recent call last):
                File "<string>", line 1, in <module>
              ImportError: cannot import name CLoader
              Python 2.7.10
      489.42user 5.53system 2:38.03elapsed 313%CPU (0avgtext+0avgdata 400308maxresident)k
      0inputs+31392outputs (0major+473540minor)pagefaults 0swaps
      
      PyYAML+libYAML:
              <class 'yaml.cyaml.CLoader'>
              Python 2.7.10
      78.69user 5.45system 0:32.63elapsed 257%CPU (0avgtext+0avgdata 398560maxresident)k
      0inputs+31392outputs (0major+542022minor)pagefaults 0swaps
      
      PyPy/PyYAML:
              Traceback (most recent call last):
                File "<builtin>/app_main.py", line 75, in run_toplevel
                File "<builtin>/app_main.py", line 601, in run_it
                File "<string>", line 1, in <module>
              ImportError: cannot import name 'CLoader'
              Python 2.7.9 (2.6.0+dfsg-3, Jul 04 2015, 05:43:17)
              [PyPy 2.6.0 with GCC 4.9.3]
      154.27user 8.12system 0:53.83elapsed 301%CPU (0avgtext+0avgdata 627960maxresident)k
      808inputs+30376outputs (0major+727994minor)pagefaults 0swaps
      **************************************** BASELINE        ****************************************
      PyYAML:
              Traceback (most recent call last):
                File "<string>", line 1, in <module>
              ImportError: cannot import name CLoader
              Python 2.7.10
              358.08user 4.05system 6:08.37elapsed 98%CPU (0avgtext+0avgdata 315004maxresident)k
      0inputs+31392outputs (0major+85252minor)pagefaults 0swaps
      
      PyYAML+libYAML:
              <class 'yaml.cyaml.CLoader'>
              Python 2.7.10
      50.32user 3.30system 0:56.59elapsed 94%CPU (0avgtext+0avgdata 307296maxresident)k
      0inputs+31392outputs (0major+79335minor)pagefaults 0swaps
      
      PyPy/PyYAML:
              Traceback (most recent call last):
                File "<builtin>/app_main.py", line 75, in run_toplevel
                File "<builtin>/app_main.py", line 601, in run_it
                File "<string>", line 1, in <module>
              ImportError: cannot import name 'CLoader'
              Python 2.7.9 (2.6.0+dfsg-3, Jul 04 2015, 05:43:17)
              [PyPy 2.6.0 with GCC 4.9.3]
      72.94user 5.18system 1:23.41elapsed 93%CPU (0avgtext+0avgdata 455312maxresident)k
      0inputs+30392outputs (0major+110280minor)pagefaults 0swaps
      
      ```
      
      Reviewers: fhahn, anemet
      
      Reviewed By: anemet
      
      Subscribers: llvm-commits, mehdi_amini
      
      Differential Revision: https://reviews.llvm.org/D26967
      
      llvm-svn: 293261
      55bfb497
    • Richard Trieu's avatar
      Fix unused variable warning. · 0b79aa33
      Richard Trieu authored
      llvm-svn: 293260
      0b79aa33
    • Saleem Abdulrasool's avatar
      ARM: fix vectorized division on WoA · 26c00e37
      Saleem Abdulrasool authored
      The Windows on ARM target uses custom division for normal division as
      the backend needs to insert division-by-zero checks.  However, it is
      designed to only handle non-vectorized division.  ARM has custom
      lowering for vectorized division as that can avoid loading registers
      with the values and invoke a division routine for each one, preferring
      to lower using NEON instructions.  Fall back to the custom lowering for
      the NEON instructions if we encounter a vectorized division.
      
      Resolves PR31778!
      
      llvm-svn: 293259
      26c00e37
    • Daniel Berlin's avatar
      NewGVN: Add basic dead and redundant store elimination · c479686a
      Daniel Berlin authored
      Summary:
      This adds basic dead and redundant store elimination to
      NewGVN.  Unlike our current DSE, it will happily do cross-block DSE if
      it meets our requirements.
      
      We get a bunch of DSE's simple.ll cases, and some stuff it doesn't.
      Unlike DSE, however, we only try to eliminate stores of the same value
      to the same memory location, not just general stores to the same
      memory location.
      
      Reviewers: davide
      
      Subscribers: llvm-commits
      
      Differential Revision: https://reviews.llvm.org/D29149
      
      llvm-svn: 293258
      c479686a
    • Saleem Abdulrasool's avatar
      Revert "DWARF: convert error logs to _LIBUNWIND_LOG" · 2b2f4dad
      Saleem Abdulrasool authored
      This reverts SVN r292721.  Avoid the use of the GNU extension as the
      preprocessor in C++11 mode requires at least one argument, and this
      warning cannot be disabled, resulting in failing -Werror builds.
      
      llvm-svn: 293257
      2b2f4dad
    • NAKAMURA Takumi's avatar
      NVPTXCodeGen: Add IPO to libdeps, since r293189. · 0d299191
      NAKAMURA Takumi authored
      llvm-svn: 293256
      0d299191
    • Tim Shen's avatar
      [APFloat] Reduce some dispatch boilerplates. NFC. · 601ba8c5
      Tim Shen authored
      Summary: This is an attempt to reduce the verbose manual dispatching code in APFloat. This doesn't handle multiple dispatch on single discriminator (e.g. APFloat::add(const APFloat&)), nor handles multiple dispatch on multiple discriminators (e.g. APFloat::convert()).
      
      Reviewers: hfinkel, echristo, jlebar
      
      Subscribers: mehdi_amini, llvm-commits
      
      Differential Revision: https://reviews.llvm.org/D29161
      
      llvm-svn: 293255
      601ba8c5
    • Richard Smith's avatar
      [docs] Add help text and refine grouping for various options. · c5b2e00d
      Richard Smith authored
      Also accept -G= (and -msmall-data-threshold=) as an alias for -G on MIPS as well as Hexagon.
      
      llvm-svn: 293254
      c5b2e00d
    • Justin Lebar's avatar
      [NVPTX] [InstCombine] Add llvm_unreachable to appease MSVC. · 25ebe2d7
      Justin Lebar authored
      llvm-svn: 293253
      25ebe2d7
    • Richard Smith's avatar
      Improve workaround for Sphinx's lack of support for command line options... · b2c82a69
      Richard Smith authored
      Improve workaround for Sphinx's lack of support for command line options containing '+', '.' etc. to be more stable as the set of options changes.
      
      llvm-svn: 293252
      b2c82a69
    • Justin Lebar's avatar
      [NVPTX] Fix use-after-stack-free bug in InstCombineCalls. · e3ac0fb9
      Justin Lebar authored
      Introduced in r293244.
      
      llvm-svn: 293251
      e3ac0fb9
    • Xin Tong's avatar
      Constant fold switch inst when looking for trivial conditions to unswitch on. · e5f8d643
      Xin Tong authored
      Summary: Constant fold switch inst when looking for trivial conditions to unswitch on.
      
      Reviewers: sanjoy, chenli, hfinkel, efriedma
      
      Subscribers: llvm-commits, mzolotukhin
      
      Differential Revision: https://reviews.llvm.org/D29037
      
      llvm-svn: 293250
      e5f8d643
    • Chandler Carruth's avatar
      [PM] Port LoopLoadElimination to the new pass manager and wire it into · baabda93
      Chandler Carruth authored
      the main pipeline.
      
      This is a very straight forward port. Nothing weird or surprising.
      
      This brings the number of missing passes from the new PM's pipeline down
      to three.
      
      llvm-svn: 293249
      baabda93
    • Quentin Colombet's avatar
      [ARM][LegalizerInfo] Specify the type of the opcode. · 89dbea06
      Quentin Colombet authored
      This is to fix the win7 bot that does not seem to be very
      good at infering the type when it gets used in an initiliazer list.
      
      llvm-svn: 293248
      89dbea06
    • Weiming Zhao's avatar
      [Builtin][ARM] Add Thumb1 support for aeabi_c{f,d}cmp.S and dcmp.S · 68e20da3
      Weiming Zhao authored
      Reviewers: compnerd, rengolin
      
      Reviewed By: rengolin
      
      Subscribers: aemerson, llvm-commits, mgorny
      
      Differential Revision: https://reviews.llvm.org/D28985
      
      llvm-svn: 293247
      68e20da3
    • Quentin Colombet's avatar
      [AArch64][LegalizerInfo] Specify the type of the opcode. · 24203cf9
      Quentin Colombet authored
      This is an attempt to fix the win7 bot that does not seem to be very
      good at infering the type when it gets used in an initiliazer list.
      
      llvm-svn: 293246
      24203cf9
    • Quentin Colombet's avatar
      Revert "[AArch64][LegalizerInfo] Specify the type of the initialization list." · e15e460c
      Quentin Colombet authored
      This reverts commit r293238.
      Even with that the win7 bot is still failing:
      http://lab.llvm.org:8011/builders/lld-x86_64-win7/builds/3862
      
      llvm-svn: 293245
      e15e460c
Loading