Skip to content
  1. Aug 28, 2018
  2. Aug 27, 2018
    • Zachary Turner's avatar
      Update the Visual Studio Integration from user feedback. · 522f9aec
      Zachary Turner authored
      This patch removes the MSBuild warnings about options that
      clang-cl ignores.  It also adds several additional fields to
      the LLVM Configuration options page.  The first is that it
      adds support for LLD!  To give the user flexibility though,
      we don't want to force LLD to always-on, and if we're not
      forcing LLD then we might as well not force clang-cl either.
      So we add options that can enable or disable lld, clang-cl,
      or any combination of the two.  Whenever one is disabled,
      it falls back to the Microsoft equivalent.
      
      Additionally, for each of clang-cl and lld-link, we add a new
      configuration setting that allows Additional Options to be
      passed for that specific tool only.  This is similar to the
      C/C++ > Command Line > Additional Options entry box, but
      it serves the use case where a user switches back and forth
      between the toolsets in their vcxproj, but where cl.exe
      won't accept some options that clang-cl will.  In this case
      you can pass those options in the clang-cl additional options
      and whenever clang-cl is disabled (or the other toolset is
      selected entirely), those options won't get passed at all.
      
      llvm-svn: 340780
      522f9aec
    • Adrian Prantl's avatar
      Fix typo · f05f9387
      Adrian Prantl authored
      llvm-svn: 340779
      f05f9387
    • Richard Smith's avatar
      67c364dd
    • Roman Tereshin's avatar
      Revert "[SCEV][NFC] Check NoWrap flags before lexicographical comparison of SCEVs" · 02320eee
      Roman Tereshin authored
      This reverts r319889.
      
      Unfortunately, wrapping flags are not a part of SCEV's identity (they
      do not participate in computing a hash value or in equality
      comparisons) and in fact they could be assigned after the fact w/o
      rebuilding a SCEV.
      
      Grep for const_cast's to see quite a few of examples, apparently all
      for AddRec's at the moment.
      
      So, if 2 expressions get built in 2 slightly different ways: one with
      flags set in the beginning, the other with the flags attached later
      on, we may end up with 2 expressions which are exactly the same but
      have their operands swapped in one of the commutative N-ary
      expressions, and at least one of them will have "sorted by complexity"
      invariant broken.
      
      2 identical SCEV's won't compare equal by pointer comparison as they
      are supposed to.
      
      A real-world reproducer is added as a regression test: the issue
      described causes 2 identical SCEV expressions to have different order
      of operands and therefore compare not equal, which in its turn
      prevents LoadStoreVectorizer from vectorizing a pair of consecutive
      loads.
      
      On a larger example (the source of the test attached, which is a
      bugpoint) I have seen even weirder behavior: adding a constant to an
      existing SCEV changes the order of the existing terms, for instance,
      getAddExpr(1, ((A * B) + (C * D))) returns (1 + (C * D) + (A * B)).
      
      Differential Revision: https://reviews.llvm.org/D40645
      
      llvm-svn: 340777
      02320eee
    • Zachary Turner's avatar
      Set line endings to Windows on MSBuild files. · 4e039d64
      Zachary Turner authored
      Normally we force Unix line endings in the repository, but since these are Windows files which are consumed by Microsoft tools that we don't have the source of, we should probably err on the side of caution and force CRLF.
      
      llvm-svn: 340776
      4e039d64
    • Craig Topper's avatar
      [X86] Reverse the check prefixes in the test added in r340774. · 171c6fe6
      Craig Topper authored
      The 32-bit and 64-bit checks were reversed.
      
      llvm-svn: 340775
      171c6fe6
    • Craig Topper's avatar
      [X86] Add test cases to show current codegen of v2i32 div/rem in 32-bit and 64-bit modes · 76b18bee
      Craig Topper authored
      In particular this shows that we end up using libcalls in 32-bit mode even for division by constant.
      
      llvm-svn: 340774
      76b18bee
    • Sanjay Patel's avatar
      [x86] add tests for possibly avoiding scalar->vector move; NFC · 7b6df506
      Sanjay Patel authored
      llvm-svn: 340773
      7b6df506
    • Gheorghe-Teodor Bercea's avatar
      [OpenMP][NVPTX] Use appropriate _CALL_ELF macro when offloading · 7af5d66b
      Gheorghe-Teodor Bercea authored
      Summary: When offloading to a device and using the powerpc64le version of the auxiliary triple, the _CALL_ELF macro is not set correctly to 2 resulting in the attempt to include a header that does not exist. This patch fixes this problem.
      
      Reviewers: Hahnfeld, ABataev, caomhin
      
      Reviewed By: Hahnfeld
      
      Subscribers: guansong, cfe-commits
      
      Differential Revision: https://reviews.llvm.org/D51312
      
      llvm-svn: 340772
      7af5d66b
    • Gheorghe-Teodor Bercea's avatar
      [OpenMP][Fix] Conditional compilation leaves variables unused · 15f5407d
      Gheorghe-Teodor Bercea authored
      Summary: Prevent variables from being left unused by conditional compilation.
      
      Reviewers: ABataev, grokos, Hahnfeld, caomhin, protze.joachim
      
      Reviewed By: Hahnfeld
      
      Subscribers: guansong, openmp-commits
      
      Differential Revision: https://reviews.llvm.org/D51303
      
      llvm-svn: 340771
      15f5407d
    • Kit Barton's avatar
      [PPC] Remove Darwin support from POWER backend. · 997165b2
      Kit Barton authored
      This patch removes uses of the Darwin ABI for PowerPC related test cases. This
      is the first step in removing Darwin support from the POWER backend.
      
      clang/test/CodeGen/darwin-ppc-varargs.c  was deleted because it was a darwin/ppc
      specific test case.
      
      All other tests were updated to remove the darwin/ppc specific invocation.
      
      Phabricator Review: https://reviews.llvm.org/D50989.
      
      llvm-svn: 340770
      997165b2
    • Vitaly Buka's avatar
      [lsan] Check that leak sanitizer works in the forked process · dd4c14e4
      Vitaly Buka authored
      Regression test for PR38698
      
      llvm-svn: 340769
      dd4c14e4
    • Andrea Di Biagio's avatar
      [llvm-mca] Remove unused include. NFC · 1a87a80d
      Andrea Di Biagio authored
      llvm-svn: 340768
      1a87a80d
    • Alexandre Eichenberger's avatar
      [OpenMP][libomptarget] rework of fatal error reporting · e9b7d8dc
      Alexandre Eichenberger authored
      Summary:
      Removed the function that used a lock and varargs
      Used the same mechanism as for debug messages
      
      Reviewers: ABataev, gtbercea, grokos, Hahnfeld
      
      Reviewed By: gtbercea, Hahnfeld
      
      Subscribers: mikerice, ABataev, RaviNarayanaswamy, guansong, openmp-commits
      
      Differential Revision: https://reviews.llvm.org/D51226
      
      llvm-svn: 340767
      e9b7d8dc
    • Matt Arsenault's avatar
      DAG: Check transformed type for forming fminnum/fmaxnum from vselect · cea7c696
      Matt Arsenault authored
      Follow up to r340655 to fix vector types which are split.
      
      llvm-svn: 340766
      cea7c696
    • Leonard Chan's avatar
      [Sema/Attribute] Make types declared with address_space an AttributedType · fdadd998
      Leonard Chan authored
      Currently an address_space is stored in a qualifier. This makes any type
      declared with an address_space attribute in the form
      `__attribute__((address_space(1))) int 1;` be wrapped in an AttributedType.
      
      This is for a later patch where if `address_space` is declared in a macro,
      any diagnostics that would normally print the address space will instead dump
      the macro name. This will require saving any macro information in the
      AttributedType.
      
      Differential Revision: https://reviews.llvm.org/D51229
      
      llvm-svn: 340765
      fdadd998
    • Petr Hosek's avatar
      [sanitizer][fuzzer] Transition back to ZX_TIME_INFINITE · 118dc299
      Petr Hosek authored
      Now that all Zircon calls have been transitioned to take time as signed
      value, we can transition back to ZX_TIME_INFINITE, undoing the change
      made in r337802.
      
      Differential Revision: https://reviews.llvm.org/D51266
      
      llvm-svn: 340764
      118dc299
    • Matt Arsenault's avatar
      MachineVerifier: Fix assert on implicit virtreg use · 9eb3dda0
      Matt Arsenault authored
      If the liveness of a physical register was invalid, this
      was attempting to iterate the subregisters of all register
      uses of the instruction, which would assert when it
      encountered an implicit virtual register operand.
      
      llvm-svn: 340763
      9eb3dda0
    • Matt Arsenault's avatar
      LangRef: Clarify expected sNaN behavior for minnum/maxnum · 937003cf
      Matt Arsenault authored
      This matches the de-facto behavior based on constant folding
      and the default lowering to fmin/fmax.
      
      llvm-svn: 340762
      937003cf
    • Sean Fertile's avatar
      [PowerPC][MC] Support expressions in getMemRIX16Encoding. · a2f095f1
      Sean Fertile authored
      Loosens an assert in getMemRIX16Encoding that restricts DQ-form instructions to
      using an immediate, so that we can assemble instructions like lxv/stxv where the
      offset is an expression.
      
      Differential Revision: https://reviews.llvm.org/D51122
      
      llvm-svn: 340761
      a2f095f1
    • Benjamin Kramer's avatar
      [NVPTX] Implement isLegalToVectorizeLoadChain · 759e7d98
      Benjamin Kramer authored
      This lets LSV nicely split up underaligned chains.
      
      Differential Revision: https://reviews.llvm.org/D51306
      
      llvm-svn: 340760
      759e7d98
    • Kirill Bobyrev's avatar
      Cleanup after rL340729 · e6d5fd81
      Kirill Bobyrev authored
      llvm-svn: 340759
      e6d5fd81
    • Vitaly Buka's avatar
      Revert "[lsan] Do not check for leaks in the forked process" · d833acdb
      Vitaly Buka authored
      Users need leak reports in forks.
      
      This reverts commit r334036.
      
      llvm-svn: 340758
      d833acdb
    • Craig Topper's avatar
      [X86] When lowering v32i8 MULHS/MULHU, shuffle after the PACKUS rather than before. · 4be11c05
      Craig Topper authored
      We're using a 256-bit PACKUS to do the truncation, but that instruction operates on 128-bit lanes. So previously we shuffled first to rearrange the lanes. But that requires 2 shuffles. Instead we can shuffle after the PACKUS using a single VPERMQ. This matches what our normal LowerTRUNCATE code does when it uses PACKUS.
      
      Differential Revision: https://reviews.llvm.org/D51284
      
      llvm-svn: 340757
      4be11c05
    • Craig Topper's avatar
      [X86] Add support for matching paddus patterns where one of the vectors is a constant. · fff90377
      Craig Topper authored
      InstCombine mucks these up a bit. So we need to do some additional pattern matching to fix it. There are a still a few special cases not handled, but this covers the general case.
      
      Differential Revision: https://reviews.llvm.org/D50952
      
      llvm-svn: 340756
      fff90377
    • Matt Davis's avatar
      [llvm-mca] Introduce the llvm-mca library and organize the directory accordingly. NFC. · 271ce763
      Matt Davis authored
      Summary:
      This patch introduces llvm-mca as a library.  The driver (llvm-mca.cpp), views, and stats, are not part of the library. 
      Those are separate components that are not required for the functioning of llvm-mca.
      
      The directory has been organized as follows:
      All library source files now reside in:
        - `lib/HardwareUnits/` - All subclasses of HardwareUnit (these represent the simulated hardware components of a backend).
            (LSUnit does not inherit from HardwareUnit, but Scheduler does which uses LSUnit).  
        - `lib/Stages/` - All subclasses of the pipeline stages.
        - `lib/` - This is the root of the library and contains library code that does not fit into the Stages or HardwareUnit subdirs.
      
      All library header files now reside in the `include` directory and mimic the same layout as the `lib` directory mentioned above.
      
      In the (near) future we would like to move the library (include and lib) contents from tools and into the core of llvm somewhere.
      That change would allow various analysis and optimization passes to make use of MCA  functionality for things like cost modeling.
      
      I left all of the non-library code just where it has always been, in the root of the llvm-mca directory. 
      The include directives for the non-library source file have been updated to refer to the llvm-mca library headers.
      I updated the llvm-mca/CMakeLists.txt file to include the library headers, but I made the non-library code
      explicitly reference the library's 'include' directory.  Once we eventually (hopefully) migrate the MCA library
      components into llvm the include directives used by the non-library source files will be updated to point to the
      proper location in llvm.
      
      Reviewers: andreadb, courbet, RKSimon
      
      Reviewed By: andreadb
      
      Subscribers: mgorny, javed.absar, tschuett, gbedwell, llvm-commits
      
      Differential Revision: https://reviews.llvm.org/D50929
      
      llvm-svn: 340755
      271ce763
    • Matt Davis's avatar
      [llvm-mca] Remove unused method. NFC. · b09ecf93
      Matt Davis authored
      llvm-svn: 340754
      b09ecf93
    • Stella Stamenova's avatar
      [lit, python] Remove quotes around %python in cache.ll · 79a40ebb
      Stella Stamenova authored
      Summary: We needed quotes around %python before to make python work correctly (on Windows) if the path contains spaces. I recently made a change so that %python now inherently has quotes, so now adding quotes around %python makes the test fail because the quotes cancel each other.
      
      Reviewers: asmith, inglorion
      
      Subscribers: mehdi_amini, eraman, steven_wu, dexonsmith, llvm-commits
      
      Differential Revision: https://reviews.llvm.org/D51244
      
      llvm-svn: 340753
      79a40ebb
    • Marshall Clow's avatar
      Mark P0556 as 'in progress' · 05ff3d3b
      Marshall Clow authored
      llvm-svn: 340752
      05ff3d3b
    • Hans Wennborg's avatar
      Use a lambda for calls to ::open in RetryAfterSignal · 0a0e4112
      Hans Wennborg authored
      In Bionic, open can be overloaded for _FORTIFY_SOURCE support, causing
      compile errors of RetryAfterSignal due to overload resolution. Wrapping
      the call in a lambda avoids this.
      
      Based on a patch by Chih-Wei Huang <cwhuang@linux.org.tw>!
      
      llvm-svn: 340751
      0a0e4112
    • Wouter van Oortmerssen's avatar
      [WebAssembly] Added default stack-only instruction mode for MC. · 8a9cb242
      Wouter van Oortmerssen authored
      Summary:
      Made it convert from register to stack based instructions, and removed the registers.
      Fixes to related code that was expecting register based instructions.
      Added the correct testing flag to all tests, depending on what the
      format they were expecting so far.
      Translated one test to stack format as example: reg-stackify-stack.ll
      
      tested:
      llvm-lit -v `find test -name WebAssembly`
      unittests/MC/*
      
      Reviewers: dschuff, sunfish
      
      Subscribers: sbc100, jgravelle-google, eraman, aheejin, llvm-commits, jfb
      
      Differential Revision: https://reviews.llvm.org/D51241
      
      llvm-svn: 340750
      8a9cb242
    • Kirill Bobyrev's avatar
      [docs] Mention clangd-dev in clangd documentation · 5bda3fad
      Kirill Bobyrev authored
      Since the clangd-dev is intended to be the place for clangd-related
      discussions, we should point new users to this mailing list while
      probably mentioning cfe-dev, too.
      
      Reviewed by: ioeric
      
      Differential Revision: https://reviews.llvm.org/D51293
      
      llvm-svn: 340749
      5bda3fad
    • Raphael Isemann's avatar
      Let the CompilerInstance create our clang ASTContext · 596709d8
      Raphael Isemann authored
      Summary:
      Now that we moved the BuiltinContext and SelectorTable to the
      CompilerInstance, we can also get rid of manually creating our
      own ASTContext, but just use the one from the CompilerInstance
      (which will be created with the same settings).
      
      Reviewers: vsk, aprantl, davide
      
      Reviewed By: davide
      
      Subscribers: lldb-commits
      
      Differential Revision: https://reviews.llvm.org/D51253
      
      llvm-svn: 340748
      596709d8
    • Raphael Isemann's avatar
      Disable use-color if the output stream is not a terminal with color support. · eca9ce14
      Raphael Isemann authored
      Summary:
      LLDB currently only checks the output terminal for color support by looking
      at the `TERM` environment variable and comparing it to `"dumb"`. This causes that
      when running LLDB on a CI node, the syntax highlighter will not be deactivated by
      LLDB and the output log is filled with color codes (unless the terminal emulator
      actually exposes itself as dumb).
      
      This patch now relies on the LLVM code for detecting color support which is more
      reliable. We now also correctly actually initialize the `m_supports_colors` variable in `File`.
      `m_supports_colors` was so far uninitialized, but the code path that uses `m_supports_colors`
      was also dead so the sanitizers didn't sound an alarm.
      
      The old check that compares `TERM` is not removed by this patch as the new LLVM code
      doesn't seem to handle this case (and it's a good thing to check for "dumb" terminals).
      
      Reviewers: aprantl, javed.absar
      
      Reviewed By: aprantl
      
      Subscribers: kristof.beyls, abidh, lldb-commits
      
      Differential Revision: https://reviews.llvm.org/D51243
      
      llvm-svn: 340747
      eca9ce14
    • Andrea Di Biagio's avatar
      [llvm-mca] Improved report generated by the SchedulerStatistics view. · b89b96c1
      Andrea Di Biagio authored
      Before this patch, the SchedulerStatistics only printed the maximum number of
      buffer entries consumed in each scheduler's queue at a given point of the
      simulation.
      
      This patch restructures the reported table, and adds an extra field named
      "Average number of used buffer entries" to it.
      This patch also uses different colors to help identifying bottlenecks caused by
      high scheduler's buffer pressure.
      
      llvm-svn: 340746
      b89b96c1
Loading