summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* propagate __config_site includes when building benchmarksEric Fiselier2018-11-151-2/+10
| | | | llvm-svn: 346933
* Fix a use-after-free of the ABI plugin.Zachary Turner2018-11-151-8/+9
| | | | | | | | | | | This was introduced in r346775. Previously the ABI shared_ptr was declared as a function local static meaning it would live forever. After the change, someone has to create a strong reference to it or it will go away. In this code, we were calling ABI::FindPlugin(...).get(), so it was being immediately destroyed and we were holding onto a dangling pointer. llvm-svn: 346932
* [WebAssembly] Renumber SIMD bitwise instructionsThomas Lively2018-11-152-13/+13
| | | | | | | | | | | | Summary: Changed to match https://github.com/WebAssembly/simd/pull/54. Reviewers: aheejin Subscribers: dschuff, sbc100, jgravelle-google, sunfish, llvm-commits Differential Revision: https://reviews.llvm.org/D54561 llvm-svn: 346931
* NFC cleanup: Prefer make_unique over reset(new T())David Blaikie2018-11-151-40/+43
| | | | llvm-svn: 346929
* Fix combining pragma __debug dump & parser_crash with -EDavid Blaikie2018-11-153-4/+13
| | | | | | | | | | | | | | | | | | | | | | | Previously these would be transformed into annotation tokens and the preprocessor would then assume they were real tokens with source locations and assert/UB. Other pragmas that produce annotation tokens aren't a problem because they aren't handled if the parser isn't hooked up - ParsePragma.cpp registers those handlers & isn't run for pure preprocessing. So they're treated as unknown pragmas & printed verbatim by the preprocessor. Perhaps these pragmas should be treated the same way? But they got mixed in with other __debug pragmas that do need to be handled during preprocessing. The third __debug pragma that produces an annotation token is 'captured' - which had its own fix for this issue - by not inserting the annotation token in the first place if it detected that it was in preprocessing mode. I've removed that fix (from Lex/Pragma.cpp) in favor of the more general one in Frontend/PrintPreprocessedOutput.cpp. llvm-svn: 346928
* Rewrite-imports on crash: Simplify handlingDavid Blaikie2018-11-151-1/+1
| | | | | | | | | | -frewrite-imports already implies -frewrite-includes (it piggy-backs on/extends the implementation) so there's no need to conditionally pass -frewrite-includes when already using -frewrite-imports (& especially I don't think these would want to be different between crash reporting and not crash reporting) llvm-svn: 346927
* Stmt bits: Make ExprBits relative to StmtBitsDavid Blaikie2018-11-151-1/+1
| | | | | | | Seems like it makes it a bit easier to read/validate/update in the future. llvm-svn: 346926
* AMDGPU: Fix check lines in fdot2 test:Konstantin Zhuravlyov2018-11-151-6/+6
| | | | | | GCN900 -> GFX900 llvm-svn: 346925
* [commit-test] Add blank line for test/tools/llvm-objdump/symbol-table-elf.testXing GUO2018-11-151-0/+1
| | | | | | | | | | | | | | Summary: Test commit Reviewers: Higuoxing Reviewed By: Higuoxing Subscribers: llvm-commits, Higuoxing Differential Revision: https://reviews.llvm.org/D54562 llvm-svn: 346924
* AMDGPU: Enable code object v3 for AMDHSA onlyKonstantin Zhuravlyov2018-11-1545-182/+199
| | | | | | Differential Revision: https://reviews.llvm.org/D54186 llvm-svn: 346923
* Fix copy/paste mistake for r346919.Jonas Devlieghere2018-11-151-1/+1
| | | | llvm-svn: 346921
* Add setting to require hardware breakpoints.Jonas Devlieghere2018-11-1541-234/+666
| | | | | | | | | | | | | | | | When debugging read-only memory we cannot use software breakpoint. We already have support for hardware breakpoints and users can specify them with `-H`. However, there's no option to force LLDB to use hardware breakpoints internally, for example while stepping. This patch adds a setting target.require-hardware-breakpoint that forces LLDB to always use hardware breakpoints. Because hardware breakpoints are a limited resource and can fail to resolve, this patch also extends error handling in thread plans, where breakpoints are used for stepping. Differential revision: https://reviews.llvm.org/D54221 llvm-svn: 346920
* [reproducer] Post-commit cleanupJonas Devlieghere2018-11-153-8/+14
| | | | | | | | | After committing the initial reproducer feature I noticed a few small issues which warranted addressing here. It fixes incorrect documentation in the command object and extract some duplicated code into the debugger object. llvm-svn: 346919
* [WebAssembly] Initial support for shared objects (-shared)Sam Clegg2018-11-1511-17/+212
| | | | | | | | | | | | Based on the initial spec proposal: https://github.com/WebAssembly/tool-conventions/blob/master/DynamicLinking.md The llvm/codegen side of this is still missing but I believe this change is still worth landing as an incremental step Differential Revision: https://reviews.llvm.org/D54249 llvm-svn: 346918
* Work around C++03 decltype limitationsEric Fiselier2018-11-151-5/+5
| | | | llvm-svn: 346917
* [X86] Don't mark SEXTLOADS with narrow types as Custom with ↵Craig Topper2018-11-155-227/+139
| | | | | | | | -x86-experimental-vector-widening-legalization. The narrow types end up requesting widening, but generic legalization will end up scalaring and using a build_vector to do the widening. llvm-svn: 346916
* CGDecl::emitStoresForConstant fix synthesized constant's nameJF Bastien2018-11-1513-62/+90
| | | | | | | | | | | | Summary: The name of the synthesized constants for constant initialization was using mangling for statics, which isn't generally correct and (in a yet-uncommitted patch) causes the mangler to assert out because the static ends up trying to mangle function parameters and this makes no sense. Instead, mangle to `"__const." + FunctionName + "." + DeclName`. Reviewers: rjmccall Subscribers: dexonsmith, cfe-commits Differential Revision: https://reviews.llvm.org/D54055 llvm-svn: 346915
* Get tests compiling with -Wunused-local-typedefEric Fiselier2018-11-1551-94/+22
| | | | llvm-svn: 346914
* [MachineOutliner][NFC] Check if CandidatesForRepeatedSeq < 2Jessica Paquette2018-11-151-1/+1
| | | | | | There's no reason to call getOutliningCandidateInfo with a single candidate. llvm-svn: 346913
* [libcxx] [test] Fix Clang -Wunused-local-typedef warnings.Stephan T. Lavavej2018-11-144-20/+0
| | | | | | C++11's [hash.requirements] never required these typedefs from users. llvm-svn: 346912
* [libcxx] [test] Include <cassert> for assert().Stephan T. Lavavej2018-11-148-0/+8
| | | | | | This fixes compiler errors with MSVC's STL. llvm-svn: 346911
* [libcxx] [test] Fix MSVC warning C4800.Stephan T. Lavavej2018-11-141-6/+6
| | | | | | | | | | | | This was implicitly converting [1, 3] to bool, which triggers an MSVC warning. The test should just pass `true`, which is simpler, has the same behavior, and avoids the warning. (This is a library test, not a compiler test, and the conversion happens before calling `push_back`, so passing [1, 3] isn't interesting in any way. This resembles a previous change to stop passing `1 == 1` in the `vector<bool>` tests.) llvm-svn: 346910
* [X86] Remove unused variableBenjamin Kramer2018-11-141-1/+0
| | | | llvm-svn: 346909
* [X86] Support v2i32/v4i16/v8i8 load/store using f64 on 32-bit targets under ↵Craig Topper2018-11-144-243/+239
| | | | | | | | | | -x86-experimental-vector-widening-legalization. On 64-bit targets the type legalizer will use i64 to legalize these. But when i64 isn't legal, the type legalizer won't try an FP type. So do it manually instead. There are a few regressions in here due to some v2i32 operations like mul and div now being reassembled into a full vector just to store instead of storing the pieces. But this was already occuring in 64-bit mode so its not a new issue. llvm-svn: 346908
* [codeview] Make "clang -g" emit codeview by default when targetting MSVCReid Kleckner2018-11-1410-25/+80
| | | | | | | | | | | | | | | | | | | | Summary: If you're using the Microsoft ABI, chances are that you want PDBs and codeview debug info. Currently, everyone has to remember to specific -gcodeview by default, when it would be nice if the standard -g option did the right thing by default. Also, do some related cleanup of -cc1 options. When targetting the MS C++ ABI, we probably shouldn't pass -debugger-tuning=gdb. We were also passing -gcodeview twice, which is silly. Reviewers: smeenai, zturner Subscribers: aprantl, JDevlieghere, llvm-commits Differential Revision: https://reviews.llvm.org/D54499 llvm-svn: 346907
* Remove the expectedFlakeyDsym decorator. It's not useful anymore.Adrian Prantl2018-11-142-7/+0
| | | | llvm-svn: 346906
* Attempt to show progress bar in benchmark testsEric Fiselier2018-11-141-1/+1
| | | | llvm-svn: 346905
* Exclude check-cxx-benchmarks from the global test target.Eric Fiselier2018-11-141-2/+2
| | | | llvm-svn: 346904
* [X86] Update masked expandload/compressstore test namesSimon Pilgrim2018-11-141-55/+53
| | | | llvm-svn: 346903
* [InstSimplify] add more tests for funnel shift with select; NFCSanjay Patel2018-11-141-13/+78
| | | | | | | The cases are just different enough that we should have complete tests to avoid bugs from typos in the code. llvm-svn: 346902
* [MachineOutliner][NFC] Don't compute liveness if X16/X17/NZCV are unusedJessica Paquette2018-11-142-16/+39
| | | | | | | | | | | Using the MBB flags, we can tell if X16/X17/NZCV are unused in a block, and also not live out. If this holds for all MBBs, then we can avoid checking for liveness on that candidate. Furthermore, if it holds for an individual candidate's MBB, then we can avoid checking for liveness on that candidate. llvm-svn: 346901
* update xcode project file for reproducers.Jason Molenda2018-11-141-4/+26
| | | | llvm-svn: 346900
* Remove unused getMDNodeFwdRefOrNull interfaces (NFC)Teresa Johnson2018-11-142-13/+3
| | | | | | | | | | | | | | | Summary: Followup from D53596/r346891. Remove the getMDNodeFwdRefOrNull interface to the MDLoader since it is no longer used. Also improve error messages when the internal implementation is used within the MDLoader. Reviewers: steven_wu Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D54542 llvm-svn: 346899
* [X86][SSE] Add SSE2/SSE42 masked load/store testsSimon Pilgrim2018-11-142-349/+1977
| | | | | | Now that the load/store tests are split the impact of running the tests on multiple (illegal) targets is a lot less impactful llvm-svn: 346896
* Bias physical register immediate assignmentsNirav Dave2018-11-1442-338/+443
| | | | | | | | | | | | | | | | | | | | | | | The machine scheduler currently biases register copies to/from physical registers to be closer to their point of use / def to minimize their live ranges. This change extends this to also physical register assignments from immediate values. This causes a reduction in reduction in overall register pressure and minor reduction in spills and indirectly fixes an out-of-registers assertion (PR39391). Most test changes are from minor instruction reorderings and register name selection changes and direct consequences of that. Reviewers: MatzeB, qcolombet, myatsina, pcc Subscribers: nemanjai, jvesely, nhaehnle, eraman, hiraditya, javed.absar, arphaman, jfb, jsji, llvm-commits Differential Revision: https://reviews.llvm.org/D54218 llvm-svn: 346894
* [ELF] Make TrapInstr and Filler byte arrays. NFC.Simon Atanasyan2018-11-149-29/+33
| | | | | | | | | | | | The uint32_t type does not clearly convey that these fields are interpreted in the target endianness. Converting them to byte arrays should make this more obvious and less error-prone. Patch by James Clarke Differential Revision: http://reviews.llvm.org/D54207 llvm-svn: 346893
* [c++20] Implement P0482R6: enable -fchar8_t by default in C++20 mode.Richard Smith2018-11-1411-78/+147
| | | | | | | | | | | | | This unfortunately results in a substantial breaking change when switching to C++20, but it's not yet clear what / how much we should do about that. We may want to add a compatibility conversion from u8 string literals to const char*, similar to how C++98 provided a compatibility conversion from string literals to non-const char*, but that's not handled by this patch. The feature can be disabled in C++20 mode with -fno-char8_t. llvm-svn: 346892
* [ThinLTO] Fix a crash in lazy loading of MetadataTeresa Johnson2018-11-143-2/+139
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This is a revised version of D41474. When the debug location is parsed in BitcodeReader::parseFunction, the scope and inlinedAt MDNodes are obtained via MDLoader->getMDNodeFwdRefOrNull(), which will create a forward ref if they were not yet loaded. Specifically, if one of these MDNodes is in the module level metadata block, and this is during ThinLTO importing, that metadata block is lazily loaded. Most places in that invoke getMDNodeFwdRefOrNull have a corresponding call to resolveForwardRefsAndPlaceholders which will take care of resolving them. E.g. places that call getMetadataFwdRefOrLoad, or at the end of parsing a function-level metadata block, or at the end of the initial lazy load of module level metadata in order to handle invocations of getMDNodeFwdRefOrNull for named metadata and global object attachments. However, the calls for the scope/inlinedAt of debug locations are not backed by any such call to resolveForwardRefsAndPlaceholders. To fix this, change the scope and inlinedAt parsing to instead use getMetadataFwdRefOrLoad, which will ensure the forward refs to lazily loaded metadata are resolved. Fixes PR35472. llvm-svn: 346891
* [X86] Split masked load/store test filesSimon Pilgrim2018-11-142-465/+475
| | | | llvm-svn: 346889
* Rename cxx-benchmark-unittests target and convert to LIT.Eric Fiselier2018-11-147-22/+201
| | | | | | | | | | | | | | This patch renames the cxx-benchmark-unittests to check-cxx-benchmarks and converts the target to use LIT in order to make the tests run faster and provide better output. In particular this runs each benchmark in a suite one by one, allowing more parallelism while ensuring output isn't garbage with multiple threads. Additionally, it adds the CMake flag '-DLIBCXX_BENCHMARK_TEST_ARGS=<list>' to specify what options are passed when running the benchmarks. llvm-svn: 346888
* [X86] Update masked load/store test namesSimon Pilgrim2018-11-141-88/+88
| | | | llvm-svn: 346887
* AMDGPU: Additional pattern for i16 median3 matchingAakanksha Patil2018-11-143-4/+60
| | | | | | | | min(max(a, b), max(min(a, b), c)) Differential Revision: https://reviews.llvm.org/D54494 llvm-svn: 346886
* Mark @llvm.trap coldVedant Kumar2018-11-147-5/+24
| | | | | | | | | | | | | | | | A call to @llvm.trap can be expected to be cold (i.e. unlikely to be reached in a normal program execution). Outlining paths which unconditionally trap is an important memory saving. As the hot/cold splitting pass (imho) should not treat all noreturn calls as cold, explicitly mark @llvm.trap cold so that it can be outlined. Split out of https://reviews.llvm.org/D54244. Differential Revision: https://reviews.llvm.org/D54329 llvm-svn: 346885
* [Support] Teach YAMLIO about polymorphic typesScott Linder2018-11-146-28/+503
| | | | | | | | | | | | | | | | | | | | | Add support for "polymorphic" types to YAMLIO. PolymorphicTraits can dynamically switch between other traits (Scalar, Map, or Sequence). When inputting, the PolymorphicTraits type is told which type to become, and when outputting the PolymorphicTraits type is asked which type it currently is. Also add support for TaggedScalarTraits to allow dynamically differentiating between multiple scalar types using YAML tags. Serialize empty maps as "{}" and empty sequences as "[]", so that types are preserved when round-tripping PolymorphicTraits. This change has equivalent semantics, but may break e.g. tests which compare output verbatim. Differential Revision: https://reviews.llvm.org/D48144 llvm-svn: 346884
* [ThinLTO] Update handling of vararg functions to match inlinerTeresa Johnson2018-11-144-15/+50
| | | | | | | | | | | | | | | | | Summary: Previously we marked all vararg functions as non-inlinable in the function summary, which prevented their importing. However, the corresponding inliner restriction was loosened in r321940/r342675 to only apply to functions calling va_start. Adjust the summary flag computation to match. Reviewers: davidxl Subscribers: mehdi_amini, inglorion, eraman, steven_wu, dexonsmith, llvm-commits Differential Revision: https://reviews.llvm.org/D54270 llvm-svn: 346883
* [AST] Fix typo in MicrosoftMangleShoaib Meenai2018-11-141-29/+29
| | | | | | | | Correct the spelling from Artifical to Artificial. Differential Revision: https://reviews.llvm.org/D54536 llvm-svn: 346882
* [InstSimplify] add tests for funnel shift with select; NFCSanjay Patel2018-11-141-0/+65
| | | | llvm-svn: 346881
* [WebAssembly] Add support for dylink section in object formatSam Clegg2018-11-148-4/+103
| | | | | | | | See https://github.com/WebAssembly/tool-conventions/blob/master/DynamicLinking.md. Differential Revision: https://reviews.llvm.org/D54490 llvm-svn: 346880
* [X86] Allow pmulh to be formed from narrow vXi16 vectors under ↵Craig Topper2018-11-142-22/+6
| | | | | | | | | | -x86-experimental-vector-widening-legalization Narrower vectors will be widened to 128 bits without changing the element size. And generic type legalization can already handle widening mulhu/mulhs. Differential Revision: https://reviews.llvm.org/D54513 llvm-svn: 346879
* [libcxx] [test] Fix running tests on macOS with python3Alexander Richardson2018-11-141-7/+8
| | | | | | | | | | | | | | | | Summary: The result of subprocess.check_output() is bytes in python3 which we need to convert to str(). Simplify this by using the executeCommand() helper. Reviewers: ldionne, EricWF Reviewed By: ldionne Subscribers: christof, libcxx-commits Differential Revision: https://reviews.llvm.org/D54522 llvm-svn: 346878
OpenPOWER on IntegriCloud