Skip to content
  1. Sep 19, 2018
  2. Sep 18, 2018
  3. Sep 14, 2018
    • Alex Langford's avatar
      Fix lit/example/many-tests pickling issue · a250f90e
      Alex Langford authored
      Summary:
      The multiprocess module uses pickling to transfer
      information between processes and does not know how to pickle
      the class created in the lit.cfg file and thus the example
      fails.
      
      Implement ManyTests in a separate file and import for the
      example test passes
      
      Patch by Nathan Lanza <nathan@lanza.io>
      
      Differential Revision: https://reviews.llvm.org/D51328
      
      llvm-svn: 342269
      a250f90e
  4. Sep 11, 2018
  5. Sep 10, 2018
    • Stella Stamenova's avatar
      [lit] Disable shtest-timeout on Windows · 4f780ea1
      Stella Stamenova authored
      Summary: This is the only test that is still failing on Windows - or rather, it is expected to fail on the bots, but passes on the new bot that we're preparing causing a failure, so I'm going to disable it. Since the test has rarely, if ever, passed on the bots, this should have the same effect and it will unblock the creation of the new bot.
      
      Reviewers: asmith, delcypher, zturner
      
      Subscribers: stella.stamenova, llvm-commits
      
      Differential Revision: https://reviews.llvm.org/D51871
      
      llvm-svn: 341856
      4f780ea1
  6. Sep 07, 2018
    • Reid Kleckner's avatar
      [benchmark] Fix flags used to compile benchmark library with clang-cl · 3a406e5a
      Reid Kleckner authored
      `MSVC` is true for clang-cl, but `"${CMAKE_CXX_COMPILER_ID}" STREQUAL
      "MSVC"` is false, so we would enable -Wall, which means -Weverything
      with clang-cl, and we get tons of undesired warnings.
      
      Use the simpler condition to fix things.
      
      llvm-svn: 341717
      3a406e5a
    • Matthias Braun's avatar
      utils/abtest: Refactor and add bisection method · e2dc6929
      Matthias Braun authored
      - Refactor/rewrite most of the code. Also make sure it passes
        pycodestyle/pyflakes now
      - Add a new mode that performs bisection on the search space. This
        should be faster in the common case where there is only a small number
        of files or functions actually leading to failure.
        The previous sequential behavior can still be accessed via `--seq`.
      
      llvm-svn: 341679
      e2dc6929
  7. Sep 05, 2018
  8. Aug 31, 2018
  9. Aug 30, 2018
  10. Aug 29, 2018
  11. Aug 28, 2018
    • Thomas Lively's avatar
      [WebAssembly][NFC] Document stackifier tablegen backend · adb6da10
      Thomas Lively authored
      Summary:
      Add comments to help readers avoid having to read tablegen backends to
      understand the code. Also remove unecessary breaks from the output.
      
      Reviewers: dschuff, aheejin
      
      Subscribers: sbc100, jgravelle-google, sunfish, llvm-commits
      
      Differential Revision: https://reviews.llvm.org/D51371
      
      llvm-svn: 340864
      adb6da10
    • Thomas Lively's avatar
      [WebAssembly][NFC] Fix formatting from rL340781 · 94a91dba
      Thomas Lively authored
      Reviewers: aheejin
      
      Subscribers: dschuff, sbc100, jgravelle-google, sunfish, llvm-commits
      
      Differential Revision: https://reviews.llvm.org/D51367
      
      llvm-svn: 340861
      94a91dba
    • Stella Stamenova's avatar
      [lit, shtest-timeout] Always use an internal shell for the shtest-timeout to... · 8f8832d2
      Stella Stamenova authored
      [lit, shtest-timeout] Always use an internal shell for the shtest-timeout to diagnose buildbot failures
      
      Summary:
      Right now this test is failing on the builtbots on Windows but we have a very similar setup where the test passes. The test is meant to test that specifying a timeout works correctly by running an infnite loop and having it timeout - on the buildbot, the infinite loop doesn't actually execute. This change runs all of the tests in the set using an internal shell rather than an external shell. I expect this will make the test pass which means that either the way the external shell is invoked or the external shell setup on the buildbots is not correct. Regardless of whether the test passes with this change, we'll need to undo this change and have a real fix.
      
      @gkistanova was able to get logs from the buildbot to rule out a number of theories as to why this test is failing, but they didn't have enough information to confirm exactly what the issue is. The purpose of this change is to narrow it down, but if someone has a local repro and can aid in debugging, that would make it much speedier (and less prone to making the bots fail).
      
      Reviewers: gkistanova, asmith, zturner, modocache, rnk, delcypher
      
      Reviewed By: rnk
      
      Subscribers: delcypher, llvm-commits, gkistanova
      
      Differential Revision: https://reviews.llvm.org/D51326
      
      llvm-svn: 340840
      8f8832d2
    • Simon Pilgrim's avatar
      [TableGen] CodeGenDAGPatterns::GenerateVariants - basic caching of matching predicates · 6a92b5e1
      Simon Pilgrim authored
      CodeGenDAGPatterns::GenerateVariants is a costly function in many tblgen commands (33.87% of the total runtime of x86 -gen-dag-isel), and due to the O(N^2) nature of the function, there are a high number of repeated comparisons of the pattern's vector<Predicate>.
      
      This initial patch at least avoids repeating these comparisons for every Variant in a pattern. I began investigating caching all the matches before entering the loop but hit issues with how best to store the data and how to update the cache as patterns were added.
      
      Saves around 15secs in debug builds of x86 -gen-dag-isel.
      
      Differential Revision: https://reviews.llvm.org/D51035
      
      llvm-svn: 340837
      6a92b5e1
    • Simon Pilgrim's avatar
      [TableGen] Use std::move where possible in InstructionMemo constructor. NFCI. · b7e10182
      Simon Pilgrim authored
      Requested in post-commit review for rL339670
      
      llvm-svn: 340819
      b7e10182
    • Kirill Bobyrev's avatar
      [NFC] Apply another commit to comply with old CMake · 99fc18c3
      Kirill Bobyrev authored
      llvm-svn: 340817
      99fc18c3
    • Kirill Bobyrev's avatar
      [benchmark] Silence warning by applying upstream patch · 6a5c01c7
      Kirill Bobyrev authored
      ompiling benchmark library (introduced in D50894) with the latest
      bootstrapped Clang produces a lot of warnings, this issue was addressed
      in the upstream patch I pushed earlier.
      
      Upstream patch:
      https://github.com/google/benchmark/commit/f85304e4e3a0e4e1bf15b91720df4a19e90b589f
      
      `README.LLVM` notes were updated to reflect the latest changes.
      
      Reviewed by: lebedev.ri
      
      Differential Revision: https://reviews.llvm.org/D51342
      
      llvm-svn: 340811
      6a5c01c7
    • Kirill Bobyrev's avatar
      Pull google/benchmark library to the LLVM tree · 0addd170
      Kirill Bobyrev authored
      This patch pulls google/benchmark v1.4.1 into the LLVM tree so that any
      project could use it for benchmark generation. A dummy benchmark is
      added to `llvm/benchmarks/DummyYAML.cpp` to validate the correctness of
      the build process.
      
      The current version does not utilize LLVM LNT and LLVM CMake
      infrastructure, but that might be sufficient for most users. Two
      introduced CMake variables:
      
      * `LLVM_INCLUDE_BENCHMARKS` (`ON` by default) generates benchmark
        targets
      * `LLVM_BUILD_BENCHMARKS` (`OFF` by default) adds generated
        benchmark targets to the list of default LLVM targets (i.e. if `ON`
        benchmarks will be built upon standard build invocation, e.g. `ninja` or
        `make` with no specific targets)
      
      List of modifications:
      
      * `BENCHMARK_ENABLE_TESTING` is disabled
      * `BENCHMARK_ENABLE_EXCEPTIONS` is disabled
      * `BENCHMARK_ENABLE_INSTALL` is disabled
      * `BENCHMARK_ENABLE_GTEST_TESTS` is disabled
      * `BENCHMARK_DOWNLOAD_DEPENDENCIES` is disabled
      
      Original discussion can be found here:
      http://lists.llvm.org/pipermail/llvm-dev/2018-August/125023.html
      
      Reviewed by: dberris, lebedev.ri
      
      Subscribers: ilya-biryukov, ioeric, EricWF, lebedev.ri, srhines,
      dschuff, mgorny, krytarowski, fedor.sergeev, mgrang, jfb, llvm-commits
      
      Differential Revision: https://reviews.llvm.org/D50894
      
      llvm-svn: 340809
      0addd170
    • Thomas Lively's avatar
      [WebAssembly] TableGen backend for stackifying instructions · 211874d2
      Thomas Lively authored
      Summary:
      The new stackification backend generates the giant switch statement
      used to translate instructions to their stackified forms. I did this
      because it was more interesting than adding all the different vector
      versions of the various SIMD instructions to the switch statment
      manually.
      
      Reviewers: aardappel, aheejin, dschuff
      
      Subscribers: mgorny, sbc100, jgravelle-google, sunfish, jfb, llvm-commits
      
      Differential Revision: https://reviews.llvm.org/D51318
      
      llvm-svn: 340781
      211874d2
  12. Aug 23, 2018
  13. Aug 21, 2018
    • Heejin Ahn's avatar
      [WebAssembly] Add isEHScopeReturn instruction property · ed5e06b0
      Heejin Ahn authored
      Summary:
      So far, `isReturn` property is used to mean both a return instruction
      from a functon and the end of an EH scope, a scope that starts with a EH
      scope entry BB and ends with a catchret or a cleanupret instruction.
      Because WinEH uses funclets, all EH-scope-ending instructions are also
      real return instruction from a function. But for wasm, they only serve
      as the end marker of an EH scope but not a return instruction that
      exits a function. This mismatch caused incorrect prolog and epilog
      generation in wasm EH scopes. This patch fixes this.
      
      This patch is in the same vein with rL333045, which splits
      `MachineBasicBlock::isEHFuncletEntry` into `isEHFuncletEntry` and
      `isEHScopeEntry`.
      
      Reviewers: dschuff
      
      Subscribers: sbc100, jgravelle-google, sunfish, llvm-commits
      
      Differential Revision: https://reviews.llvm.org/D50653
      
      llvm-svn: 340325
      ed5e06b0
  14. Aug 17, 2018
  15. Aug 16, 2018
  16. Aug 15, 2018
    • Simon Pilgrim's avatar
      [TableGen] Remove unnecessary TypeSetByHwMode -> ValueTypeByHwMode ->... · c3c1441b
      Simon Pilgrim authored
      [TableGen] Remove unnecessary TypeSetByHwMode -> ValueTypeByHwMode -> TypeSetByHwMode conversions in getPatternSize
      
      I noticed this during profiling of tablegen (PR28222) that we were calling Child->getType(0) which creates a ValueTypeByHwMode on the fly from the requested internal TypeSetByHwMode type and returns it by value, we then treat it as a TypeSetByHwMode reference which involves constructing a new TypeSetByHwMode on the stack with a large amount of std::map iterating/copying all along the way.
      
      I am not an expert on tablegen, but AFAICT this is all unnecessary and we should be calling Child->getExtType(0) which returns the original TypeSetByHwMode by reference.
      
      This gives me a 90sec reduction in msvc debug builds of x86 -gen-dag-isel.
      
      Differential Revision: https://reviews.llvm.org/D50789
      
      llvm-svn: 339812
      c3c1441b
  17. Aug 14, 2018
    • Andrea Di Biagio's avatar
      [Tablegen][MCInstPredicate] Removed redundant template argument from class... · 9eaf5aa0
      Andrea Di Biagio authored
      [Tablegen][MCInstPredicate] Removed redundant template argument from class TIIPredicate, and implemented verification rules for TIIPredicates.
      
      This patch removes redundant template argument `TargetName` from TIIPredicate.
      Tablegen can always infer the target name from the context. So we don't need to
      force users of TIIPredicate to always specify it.
      
      This allows us to better modularize the tablegen class hierarchy for the
      so-called "function predicates". class FunctionPredicateBase has been added; it
      is currently used as a building block for TIIPredicates. However, I plan to
      reuse that class to model other function predicate classes too (i.e. not just
      TIIPredicates). For example, this can be a first step towards implementing
      proper support for dependency breaking instructions in tablegen.
      
      This patch also adds a verification step on TIIPredicates in tablegen.
      We cannot have multiple TIIPredicates with the same name. Otherwise, this will
      cause build errors later on, when tablegen'd .inc files are included by cpp
      files and then compiled.
      
      Differential Revision: https://reviews.llvm.org/D50708
      
      llvm-svn: 339706
      9eaf5aa0
    • Simon Pilgrim's avatar
      77af5fdb
    • Craig Topper's avatar
      [X86] Don't ignore 0x66 prefix on relative jumps in 64-bit mode. Fix opcode... · cade635c
      Craig Topper authored
      [X86] Don't ignore 0x66 prefix on relative jumps in 64-bit mode. Fix opcode selection of relative jumps in 16-bit mode. Treat jno/jo like other jcc instructions.
      
      The behavior in 64-bit mode is different between Intel and AMD CPUs. Intel ignores the 0x66 prefix. AMD does not. objump doesn't ignore the 0x66 prefix. Since LLVM aims to match objdump behavior, we should do the same.
      
      While I was trying to fix this I had change brtarget16/32 to use ENCODING_IW/ID instead of ENCODING_Iv to get the 0x66+REX.W case to act sort of sanely. It's still wrong, but that's a problem for another day.
      
      The change in encoding exposed the fact that 16-bit mode disassembly of relative jumps was creating JMP_4 with a 2 byte immediate. It should have been JMP_2. From just printing you can't tell the difference, but if you dumped the encoding it wouldn't have matched what we started with.
      
      While fixing that, it exposed that jo/jno opcodes were missing from the switch that this patch deleted and there were no test cases for them.
      
      Fixes PR38537.
      
      llvm-svn: 339622
      cade635c
Loading