1. Feb 27, 2018
    • Stephan T. Lavavej's avatar
      [libcxx] [test] Fix MSVC warnings and errors. · c1fcd97e
      Stephan T. Lavavej authored
      test/std/numerics/numeric.ops/exclusive.scan/exclusive_scan.pass.cpp
      test/std/numerics/numeric.ops/exclusive.scan/exclusive_scan_init_op.pass.cpp
      test/std/numerics/numeric.ops/inclusive.scan/inclusive_scan.pass.cpp
      test/std/numerics/numeric.ops/inclusive.scan/inclusive_scan_op.pass.cpp
      test/std/numerics/numeric.ops/inclusive.scan/inclusive_scan_op_init.pass.cpp
      test/std/numerics/numeric.ops/transform.exclusive.scan/transform_exclusive_scan_init_bop_uop.pass.cpp
      test/std/numerics/numeric.ops/transform.inclusive.scan/transform_inclusive_scan_bop_uop.pass.cpp
      test/std/numerics/numeric.ops/transform.inclusive.scan/transform_inclusive_scan_bop_uop_init.pass.cpp
      Fix MSVC x64 truncation warnings.
      warning C4267: conversion from 'size_t' to 'int', possible loss of data
      
      test/std/strings/basic.string/string.modifiers/string_append/push_back.pass.cpp
      Fix MSVC uninitialized memory warning.
      warning C6001: Using uninitialized memory 'vl'.
      
      test/std/utilities/tuple/tuple.tuple/tuple.cnstr/PR20855_tuple_ref_binding_diagnostics.pass.cpp
      Include <cassert> for the assert() macro.
      
      Fixes D43273.
      
      llvm-svn: 326120
      c1fcd97e
    • Craig Topper's avatar
      [X86] Add a custom legalization for (i16 (bitcast v16i1)) and (i32 (bitcast... · 5e0ceb88
      Craig Topper authored
      [X86] Add a custom legalization for (i16 (bitcast v16i1)) and (i32 (bitcast v32i1)) without AVX512 to prevent scalarization
      
      Summary:
      We have an early DAG combine to turn these patterns into MOVMSK, but that combine doesn't work if the vXi1 type has more elements than the widest legal vXi8 type. Type legalization will eventually split it down to v16i1 or v32i1 and then the bitcast gets legalized to a truncstore and a scalar load. The truncstore will get lowered to a series of extracts and bit math.
      
      This patch adds a custom legalization to use a sign extend and MOVMSK instead. This prevents the eventual scalarization.
      
      Reviewers: spatel, RKSimon, zvi
      
      Reviewed By: RKSimon
      
      Subscribers: mgorny, llvm-commits
      
      Differential Revision: https://reviews.llvm.org/D43593
      
      llvm-svn: 326119
      5e0ceb88
    • David Zarzycki's avatar
      Fix for LLVM r326109 · 6daad9da
      David Zarzycki authored
      llvm-svn: 326118
      6daad9da
    • Alexey Bataev's avatar
      [SLP] Added new test + fixed some checks, NFC. · b44e2b75
      Alexey Bataev authored
      llvm-svn: 326117
      b44e2b75
    • Zachary Turner's avatar
      Revert "Emit proper CodeView when -gcodeview is passed without the cl driver." · 13e3520d
      Zachary Turner authored
      This reverts commit e17911006548518634fad66bb8648bcad49a1d64.
      
      This is failing on ASAN bots because asan expects column info,
      and it's also failing on some linux bots for unknown reasons which
      i need to investigate.
      
      llvm-svn: 326116
      13e3520d
    • Craig Topper's avatar
      [InstCombine] Add test cases with vector constants to fpextend.ll · 43fb1cde
      Craig Topper authored
      llvm-svn: 326115
      43fb1cde
    • Craig Topper's avatar
      b284e8b9
    • Zachary Turner's avatar
      Emit proper CodeView when -gcodeview is passed without the cl driver. · 9eee7bb7
      Zachary Turner authored
      Windows debuggers don't work properly when column info is emitted
      with lines.  We handled this by checking if the driver mode was
      cl, but it's possible to cause the gcc driver to emit codeview as
      well, and in that path we were emitting column info with codeview.
      
      Differential Revision: https://reviews.llvm.org/D43700
      
      llvm-svn: 326113
      9eee7bb7
    • Pavel Labath's avatar
      Add "lldb-test breakpoint" command and convert the case-sensitivity test to use it · 7c94582f
      Pavel Labath authored
      Summary:
      The command takes two input arguments: a module to use as a debug target
      and a file containing a list of commands. The command will execute each
      of the breakpoint commands in the file and dump the breakpoint state
      after each one.
      
      The commands are expected to be breakpoint set/remove/etc. commands, but
      I explicitly allow any lldb command here, so you can do things like
      change setting which impact breakpoint resolution, etc. There is also a
      "-persistent" flag, which causes lldb-test to *not* automatically clear
      the breakpoint list after each command. Right now I don't use it, but
      the idea behind it was that it could be used to test more complex
      combinations of breakpoint commands (set+modify, set+disable, etc.).
      
      Right now the command prints out only the basic breakpoint state, but
      more information can be easily added there.  To enable easy matching of
      the "at least one breakpoint location found" state, the command
      explicitly prints out the string "At least one breakpoint location.".
      
      To enable testing of breakpoints set with an absolute paths, I add the
      ability to perform rudimentary substitutions on the commands: right now
      the string %p is replaced by the directory which contains the command
      file (so, under normal circumstances, this will perform the same
      substitution as lit would do for %p).
      
      I use this command to rewrite the TestBreakpointCaseSensitivity test --
      the test was checking about a dozen breakpoint commands, but it was
      launching a new process for each one, so it took about 90 seconds to
      run. The new test takes about 0.3 seconds for me, which is approximately
      a 300x speedup.
      
      Reviewers: davide, zturner, jingham
      
      Subscribers: luporl, lldb-commits
      
      Differential Revision: https://reviews.llvm.org/D43686
      
      llvm-svn: 326112
      7c94582f
    • Kuba Mracek's avatar
      473f3fba
    • David Zarzycki's avatar
      Fix for LLVM r326109 · b0c752d3
      David Zarzycki authored
      llvm-svn: 326110
      b0c752d3
    • David Zarzycki's avatar
      [ADT] Simplify and optimize StringSwitch · d15f3193
      David Zarzycki authored
      This change improves incremental rebuild performance on dual Xeon 8168
      machines by 54%. This change also improves run time code gen by not
      forcing the case values to be lvalues.
      
      llvm-svn: 326109
      d15f3193
    • Adam Nemet's avatar
      [Driver] Forward opt-remark hotness threshold to LTO · a456db3e
      Adam Nemet authored
      llvm-svn: 326108
      a456db3e
    • Adam Nemet's avatar
      [LTO] Support filtering by hotness threshold · b4ce3573
      Adam Nemet authored
      This wires up -pass-remarks-hotness-threshold to LTO and ThinLTO.
      
      Next is to change the clang driver to pass this
      with -fdiagnostics-hotness-threshold.
      
      Differential Revision: https://reviews.llvm.org/D41465
      
      llvm-svn: 326107
      b4ce3573
    • Kuba Mracek's avatar
      [asan] Be more careful and verbose when allocating dynamic shadow memory · 061f3589
      Kuba Mracek authored
      FindAvailableMemoryRange can currently overwrite existing memory (by restricting the VM below addresses that are already used). This patch adds a check to make sure we don't restrict the VM space too much. We are also now more explicit about why the lookup failed and print out verbose values.
      
      Differential Revision: https://reviews.llvm.org/D43318
      
      llvm-svn: 326106
      061f3589
    • Alex Shlyapnikov's avatar
      [MSan] Print current stack on CHECK violation · 4b30a426
      Alex Shlyapnikov authored
      Summary:
      Print current stack on CHECK violation to aid debugging and
      match other sanitizers functionality.
      
      Reviewers: eugenis
      
      Subscribers: delcypher, llvm-commits, #sanitizers
      
      Differential Revision: https://reviews.llvm.org/D43692
      
      llvm-svn: 326105
      4b30a426
    • Simon Pilgrim's avatar
    • Scott Linder's avatar
      [DebugInfo] Support DWARF v5 source code embedding extension · a2fbcef8
      Scott Linder authored
      In DWARF v5 the Line Number Program Header is extensible, allowing values with
      new content types. This vendor extension to DWARF v5 allows source text to be
      embedded directly in the line tables of the debug line section.
      
      Add new flag (-g[no-]embed-source) to Driver and CC1 which indicates
      that source should be passed through to LLVM during CodeGen.
      
      Differential Revision: https://reviews.llvm.org/D42766
      
      llvm-svn: 326102
      a2fbcef8
    • Matt Arsenault's avatar
      AMDGPU/GlobalISel: Make f64 constants legal · 2a26a286
      Matt Arsenault authored
      llvm-svn: 326101
      2a26a286
    • Kostya Kortchinsky's avatar
      [scudo] Make some tests less Linux-y · 0c8ecea8
      Kostya Kortchinsky authored
      Summary:
      Start making the Scudo tests less Linux-y:
      - `malloc_usable_size` doesn't exist everywhere, so replace them with
        `__sanitizer_get_allocated_size` which we provide;
      - move all the `memalign` related tests into `memalign.c` since it's also not
        available everywhere.
      
      I also noticed that the `memalign.c` was missing a line in one of the loops.
      
      Reviewers: alekseyshl
      
      Reviewed By: alekseyshl
      
      Subscribers: delcypher, #sanitizers, llvm-commits
      
      Differential Revision: https://reviews.llvm.org/D43393
      
      llvm-svn: 326100
      0c8ecea8
    • Scott Linder's avatar
      [CodeGen][DebugInfo] Refactor duplicated code, NFC · 39ceac1c
      Scott Linder authored
      llvm-svn: 326099
      39ceac1c
    • Sanjay Patel's avatar
      [InstCombine] allow fdiv folds with less than fully 'fast' ops · 31a90468
      Sanjay Patel authored
      Note: gcc appears to allow this fold with -freciprocal-math alone, 
      but clang/llvm require more than that with this patch. The wording
      in the definitions seems fuzzy enough that it could go either way,
      but we'll err on the conservative side of FMF interpretation.
      
      This patch also changes the newly created fmul to have FMF propagated
      by the last fdiv rather than intersecting the FMF of the fdivs. This
      matches the behavior of other folds near here. The new fmul is only 
      used to produce an intermediate op for the final fdiv result, so it
      shouldn't be any stricter than that result. The previous behavior
      could result in dropping FMF via other folds in instcombine or CSE.
      
      Differential Revision: https://reviews.llvm.org/D43398
      
      llvm-svn: 326098
      31a90468
  2. Feb 26, 2018