Skip to content
  1. Nov 03, 2018
  2. Nov 02, 2018
    • Dan Albert's avatar
      Workaround using new Clang with an old NDK. · 96283922
      Dan Albert authored
      We're using an old NDK and a new Clang. New Clangs default to
      `-stdlib=libc++` for Android, but those libraries cannot be found by
      default with an old NDK. Use an explicit `-stdlib=libstdc++` in the
      cxx_mode_flags.
      
      llvm-svn: 346051
      96283922
    • Craig Topper's avatar
      [X86] In LowerEXTEND_VECTOR_INREG, emit a vector shuffle instead of directly using X86ISD::UNPCKL · f7108aef
      Craig Topper authored
      The majority of the changes are because the rest of shuffle lowering/combining prefers to replace the undef input with the other operand. Using UNPCKL directly seemed to avoid this and just grabbed a randomish register for the undef which can create false dependencies.
      
      llvm-svn: 346050
      f7108aef
    • Jonas Devlieghere's avatar
      [FileSystem] Open File instances through the FileSystem. · 50bc1ed2
      Jonas Devlieghere authored
      This patch modifies how we open File instances in LLDB. Rather than
      passing a path or FileSpec to the constructor, we now go through the
      virtual file system. This is needed in order to make things work with
      the VFS in the future.
      
      Differential revision: https://reviews.llvm.org/D54020
      
      llvm-svn: 346049
      50bc1ed2
    • Adrian Prantl's avatar
      Add an explicit -std=c++14 to this test. · d1932dcd
      Adrian Prantl authored
      rdar://problem/45642490
      
      llvm-svn: 346048
      d1932dcd
    • Wouter van Oortmerssen's avatar
      [WebAssembly] Parsing missing directives to produce valid .o · de28b5d1
      Wouter van Oortmerssen authored
      Summary:
      The assembler was able to assemble and then dump back to .s, but
      was failing to parse certain directives necessary for valid .o
      output:
      - .type directives are now recognized to distinguish function symbols
        and others.
      - .size is now parsed to provide function size.
      - .globaltype (introduced in https://reviews.llvm.org/D54012) is now
        recognized to ensure symbols like __stack_pointer have a proper type
        set for both .s and .o output.
      
      Also added tests for the above.
      
      Reviewers: sbc100, dschuff
      
      Subscribers: jgravelle-google, aheejin, dexonsmith, kristina, llvm-commits, sunfish
      
      Differential Revision: https://reviews.llvm.org/D53842
      
      llvm-svn: 346047
      de28b5d1
    • Zachary Turner's avatar
      Fix the lit test suite. · 53793e4d
      Zachary Turner authored
      This change was accidentally missed from the original changeset.
      
      llvm-svn: 346046
      53793e4d
    • Davide Italiano's avatar
      Revert "[Symbol] Search symbols with name and type in a symbol file" · 407c6910
      Davide Italiano authored
      It broke MacOS buildbots.
      
      llvm-svn: 346045
      407c6910
    • Mandeep Singh Grang's avatar
      [COFF, ARM64] Implement InterlockedExchange*_* builtins · 7fa07e55
      Mandeep Singh Grang authored
      Summary: Windows SDK needs these intrinsics to be proper builtins.  This is second in a series of patches to move intrinsic defintions out of intrin.h.
      
      Reviewers: rnk, mstorsjo, efriedma, TomTan
      
      Reviewed By: rnk, efriedma
      
      Subscribers: javed.absar, kristof.beyls, chrib, jfb, kristina, cfe-commits
      
      Differential Revision: https://reviews.llvm.org/D54046
      
      llvm-svn: 346044
      7fa07e55
    • Craig Topper's avatar
      [X86] Don't emit *_extend_vector_inreg nodes when both the input and output... · 60c202a4
      Craig Topper authored
      [X86] Don't emit *_extend_vector_inreg nodes when both the input and output types are legal with AVX1
      
      We already have custom lowering for the AVX case in LegalizeVectorOps. So its better to keep the regular extend op around as long as possible.
      
      I had to qualify one place in DAG combine that created illegal vector extending load operations. This change by itself had no effect on any tests which is why its included here.
      
      I've made a few cleanups to the custom lowering. The sign extend code no longer creates an identity shuffle with undef elements. The zero extend code now emits a zero_extend_vector_inreg instead of an unpckl with a zero vector.
      
      For the high half of the custom lowering of zero_extend/any_extend, we're now using an unpckh with a zero vector or undef. Previously we used used a pshufd to move the upper 64-bits to the lower 64-bits and then used a zero_extend_vector_inreg. I think the zero vector should require less execution resources and be smaller code size.
      
      Differential Revision: https://reviews.llvm.org/D54024
      
      llvm-svn: 346043
      60c202a4
    • Kamil Rytarowski's avatar
      Try to unbreak the build of sanitizers on !NetBSD · 3095874d
      Kamil Rytarowski authored
      Include the build of unpoison_passwd() and unpoison_group() for
      SANITIZER_INTERCEPT_FGETPWENT_R and SANITIZER_INTERCEPT_FGETGRENT_R.
       static void unpoison_passwd(
      
      llvm-svn: 346042
      3095874d
    • Aaron Ballman's avatar
      Diagnose parameter names that shadow the names of inherited fields under -Wshadow-field. · b55cd69a
      Aaron Ballman authored
      This addresses PR34120. Note, unlike GCC, we take into account the accessibility of the field when deciding whether to warn or not.
      
      llvm-svn: 346041
      b55cd69a
    • Fangrui Song's avatar
      [DWARF] Fix typo, .gnu_index -> .gdb_index · 17a7b49e
      Fangrui Song authored
      llvm-svn: 346040
      17a7b49e
    • Fangrui Song's avatar
      [DWARF] Fix typo, .gnu_index -> .gdb_index · 999570a2
      Fangrui Song authored
      llvm-svn: 346039
      999570a2
    • Kamil Rytarowski's avatar
      Split getpwent and fgetgrent functions in interceptors · 8deda5fb
      Kamil Rytarowski authored
      Summary:
      NetBSD does not ship with fgetpwent_r() and fgetgrent_r().
      Split their interceptors from getpwent_r() and getgrent_r()
      and disable for this OS.
      
      Installation of supernumerary interceptors causes leaking of
      errors to dlsym(3)-like operations.
      
      No functional change for other OSes.
      
      Reviewers: vitalybuka, joerg
      
      Reviewed By: vitalybuka
      
      Subscribers: srhines, kubamracek, fedor.sergeev, llvm-commits, #sanitizers, mgorny
      
      Tags: #sanitizers
      
      Differential Revision: https://reviews.llvm.org/D54041
      
      llvm-svn: 346038
      8deda5fb
    • Eli Friedman's avatar
      [AArch64] [Windows] Misc fixes for llvm-readobj -unwind. · d2941b43
      Eli Friedman authored
      Use getImageBase() helper to compute the image base. Fix various
      offsets/addresses/masks so they're actually correct.
      
      This allows decoding unwind info from DLLs, and unwind info from object
      files containing multiple functions.
      
      Differential Revision: https://reviews.llvm.org/D54015
      
      llvm-svn: 346036
      d2941b43
    • Zachary Turner's avatar
      Fix a bug in the lit test suite generation. · 66f7b435
      Zachary Turner authored
      I'm not sure why this has to be CMAKE_CURRENT_SOURCE_DIR, but
      it causes all kinds of strange cmake generation errors when it's
      the binary dir.
      
      llvm-svn: 346035
      66f7b435
    • Alex Bradbury's avatar
      [RISCV] Add some missing expansions for floating-point intrinsics · 52c27785
      Alex Bradbury authored
      A number of intrinsics, such as llvm.sin.f32, would result in a failure to 
      select. This patch adds expansions for the relevant selection DAG nodes, as 
      well as exhaustive testing for all f32 and f64 intrinsics.
      
      The codegen for FMA remains a TODO item, pending support for the various 
      RISC-V FMA instruction variants.
      
      The llvm.minimum.f32.* and llvm.maximum.* tests are commented-out, pending 
      upstream support for target-independent expansion, as discussed in 
      http://lists.llvm.org/pipermail/llvm-dev/2018-November/127408.html.
      
      Differential Revision: https://reviews.llvm.org/D54034
      Patch by Luís Marques.
      
      llvm-svn: 346034
      52c27785
    • Kristof Umann's avatar
    • Simon Pilgrim's avatar
      [X86][AVX512] Change mask ops on vpermi2var tests to not use zeroinitializer. · 88e8763b
      Simon Pilgrim authored
      This is necessary as I'm wanting to remove the 'Constant Pool' shuffle decoding from getTargetShuffleMask - but using getTargetShuffleMaskIndices allows the shuffle combiner to realize that these calls are really broadcasts.....
      
      As with a lot of the X86ISD::VPERMV3 code this causes some vperm2i/vperm2t shuffles to flip depending on optimal commutation.
      
      llvm-svn: 346032
      88e8763b
    • Heejin Ahn's avatar
      [WebAssembly] Change indices types to unsined int (NFC) · 4808914a
      Heejin Ahn authored
      Summary:
      This changes int types to unsigned int in a few places: function indices
      and `wasm::Valtype` (which is unsigend int enum).  Currently these
      values cannot have negative values anyway, so this should not be a
      functional change for now.
      
      Reviewers: sbc100
      
      Subscribers: dschuff, jgravelle-google, sunfish, llvm-commits
      
      Differential Revision: https://reviews.llvm.org/D54044
      
      llvm-svn: 346031
      4808914a
    • Lei Huang's avatar
      [PowerPC]Disable randomized address space on Linux ppc64le · 78f7a6ea
      Lei Huang authored
      Recent versions of Ubuntu (17.04 and 18.04) on PowerPC have introduced changes
      to Address Space Layout Randomization (ASLR) that is causing 500+ sanitizer
      failures. This patch disables ASLR when running the sanitizers on PowerPC 64bit
      LE.
      
      Differential Revision: https://reviews.llvm.org/D52900
      
      llvm-svn: 346030
      78f7a6ea
    • Heejin Ahn's avatar
      [WebAssembly] Fix bugs in rethrow depth counting and InstPrinter · 5b023e07
      Heejin Ahn authored
      Summary:
      EH stack depth is incremented at `try` and decremented at `catch`. When
      there are more than two catch instructions for a try instruction, we
      shouldn't count non-first catches when calculating EH stack depths.
      
      This patch fixes two bugs:
      - CFGStackify: Exclude `catch_all` in the terminate catch pad when
        calculating EH pad stack, because when we have multiple catches for a
        try we should count only the first catch instruction when calculating
        EH pad stack.
      - InstPrinter: The initial intention was also to exclude non-first
        catches, but it didn't account nested try-catches, so it failed on
        this case:
      ```
      try
        try
        catch
        end
      catch    <-- (1)
      end
      ```
      In the example, when we are at the catch (1), the last seen EH
      instruction is not `try` but `end_try`, violating the wrong assumption.
      
      We don't need these after we switch to the second proposal because there
      is gonna be only one `catch` instruction. But anyway before then these
      bugfixes are necessary for keep trunk in working state.
      
      Reviewers: dschuff
      
      Subscribers: sbc100, jgravelle-google, sunfish, llvm-commits
      
      Differential Revision: https://reviews.llvm.org/D53819
      
      llvm-svn: 346029
      5b023e07
    • George Karpenkov's avatar
      [analyzer] Fixup of the module build after https://reviews.llvm.org/D53277 · b8cfcc71
      George Karpenkov authored
      Adds AnalyzerOptions.def to the list of textual headers.
      
      llvm-svn: 346028
      b8cfcc71
    • Jordan Rupprecht's avatar
      [DebugInfo][InstMerge] Fix -debugify for phi node created by -mldst-motion · 80e7e86c
      Jordan Rupprecht authored
      Summary:
      -mldst-motion creates a new phi node without any debug info. Use the merged debug location from the incoming stores to fix this.
      
      Fixes PR38177. The test case here is (somewhat) simplified from:
      
      ```
      struct S {
        int foo;
        void fn(int bar);
      };
      void S::fn(int bar) {
        if (bar)
          foo = 1;
        else
          foo = 0;
      }
      ```
      
      Reviewers: dblaikie, gbedwell, aprantl, vsk
      
      Reviewed By: vsk
      
      Subscribers: vsk, JDevlieghere, llvm-commits
      
      Tags: #debug-info
      
      Differential Revision: https://reviews.llvm.org/D54019
      
      llvm-svn: 346027
      80e7e86c
    • Matthias Braun's avatar
      5f7cb79e
    • Sanjay Patel's avatar
      [ValueTracking] add test for non-canonical shuffle; NFC · 45a148de
      Sanjay Patel authored
      llvm-svn: 346025
      45a148de
    • Mandeep Singh Grang's avatar
      [COFF, ARM64] Change setjmp for AArch64 Windows to use Intrinsic.sponentry · 6cef4e5c
      Mandeep Singh Grang authored
      Summary: ARM64 setjmp expects sp on entry instead of framepointer.
      
      Patch by: Yin Ma (yinma@codeaurora.org)
      
      Reviewers: mgrang, eli.friedman, ssijaric, mstorsjo, rnk, compnerd
      
      Reviewed By: mgrang
      
      Subscribers: efriedma, javed.absar, kristof.beyls, chrib, cfe-commits
      
      Differential Revision: https://reviews.llvm.org/D53998
      
      llvm-svn: 346024
      6cef4e5c
    • Leonard Mosescu's avatar
      Fix a few small issues in llvm-pdbutil · 4bdbea3c
      Leonard Mosescu authored
      Running "llvm-pdbutil dump -all" on linux (using the native PDB reader),
      over a few PDBs pulled from the Microsoft public symbol store uncovered 
      a few small issues:
      
      - stripped PDBs might not have the strings stream (/names)
      - stripped PDBs might not have the "module info" stream
      
      Differential Revision: https://reviews.llvm.org/D54006
      
      llvm-svn: 346010
      4bdbea3c
    • Jonas Paulsson's avatar
      [SystemZ::TTI] Improve cost handling of uint/sint to fp conversions. · cced2a27
      Jonas Paulsson authored
      Let i8/i16 uint/sint to fp conversions cost 1 if operand is a load.
      
      Since the load already does the extension, there is no extra cost (previously
      returned 2).
      
      Review: Ulrich Weigand
      https://reviews.llvm.org/D54028
      
      llvm-svn: 346009
      cced2a27
    • Zachary Turner's avatar
      Refactor the lit configuration files · b6355cc5
      Zachary Turner authored
      A year or so ago, I re-wrote most of the lit infrastructure in LLVM so
      that it wasn't so boilerplate-y. I added lots of common helper type
      stuff, simplifed usage patterns, and made the code more elegant and
      maintainable.
      
      We migrated to this in LLVM, clang, and lld's lit files, but not in
      LLDBs. This started to bite me recently, as the 4 most recent times I
      tried to run the lit test suite in LLDB on a fresh checkout the first
      thing that would happen is that python would just start crashing with
      unhelpful backtraces and I would have to spend time investigating.
      
      You can reproduce this today by doing a fresh cmake generation, doing
      ninja lldb and then python bin/llvm-lit.py -sv ~/lldb/lit/SymbolFile at
      which point you'll get a segfault that tells you nothing about what your
      problem is.
      
      I started trying to fix the issues with bandaids, but it became clear
      that the proper solution was to just bring in the work I did in the rest
      of the projects. The side benefit of this is that the lit configuration
      files become much cleaner and more understandable as a result.
      
      Differential Revision: https://reviews.llvm.org/D54009
      
      llvm-svn: 346008
      b6355cc5
    • Fangrui Song's avatar
      Reland "Change the timestamp of llvmcache-foo file to meet the thinLTO prune policy" · 7bafaf8f
      Fangrui Song authored
      Summary:
      It is difficult to touch a file with a relative mtime across different OSes as POSIX touch -d is rigid. While we may construct relative timestamps with `date`, POSIX date is inadequate to do so as various OSes' date do not agree on a common format (OpenBSD uses `date -r seconds`, FreeBSD uses `date -v-2M` while GNU accepts `-d '-2 min'`)
      
      Just use python os.utime()
      
      Original description:
      
          The case may randomly fail if we test it with command "
           while llvm-lit tools/lld/test/ELF/lto/cache.ll; do true; done". It is because the llvmcache-foo file is younger than llvmcache-349F039B8EB076D412007D82778442BED3148C4E and llvmcache-A8107945C65C2B2BBEE8E61AA604C311D60D58D6. But due to timestamp precision reason their timestamp is the same. Given the same timestamp, the file prune policy is to remove bigger size file first, so mostly foo file is removed for its bigger size. And the files size is under threshold after deleting foo file. That's what test case expect.
      
          However sometimes, the precision is enough to measure that timestamp of llvmcache-349F039B8EB076D412007D82778442BED3148C4E and llvmcache-A8107945C65C2B2BBEE8E61AA604C311D60D58D6 are smaller than foo, so llvmcache-349F039B8EB076D412007D82778442BED3148C4E and llvmcache-A8107945C65C2B2BBEE8E61AA604C311D60D58D6 are deleted first. Since the files size is still above the file size threshold after deleting the 2 files, the foo file is also deleted. And then the test case fails, because it expect only one file should be deleted instead of 3.
      
          The fix is to change the timestamp of llvmcache-foo file to meet the thinLTO prune policy.
          The same fix is applied to llvm code at https://reviews.llvm.org/D52452.
      
          Patch by Luo Yuanke.
      
      Reviewers: ruiu, craig.topper, smaslov, Jianping, espindola, LuoYuanke, tejohnson
      
      Reviewed By: tejohnson
      
      Subscribers: sbc100, krytarowski, aheejin, llvm-commits, dexonsmith, steven_wu, arichardson, inglorion, emaste, bjope, rupprecht
      
      Differential Revision: https://reviews.llvm.org/D54039
      
      llvm-svn: 346006
      7bafaf8f
Loading