summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* Reapply llvm-reduce: Add pass to reduce parameters""David Blaikie2019-09-126-0/+188
| | | | | | | | | | Fixing a couple of asan-identified bugs * use of an invalid "Use" iterator after the element was removed * use of StringRef to Function name after the Function was erased This reapplies r371567, which was reverted in r371580. llvm-svn: 371700
* [clang-scan-deps] Add dependency targetsJan Korous2019-09-128-10/+53
| | | | | | Differential Revision: https://reviews.llvm.org/D67475 llvm-svn: 371697
* PR43278: llvm-reduce: Use temporary file names (and ToolOutputFile) rather ↵David Blaikie2019-09-127-57/+40
| | | | | | | | | | | | | | | than unique ones - to ensure they're cleaned up This modifies the tool somewhat to only create files when about to run the "interestingness" test, and delete them immediately after - this means some more files will be created sometimes (when "double checking" work - which should probably be fixed/avoided anyway). This now creates temporary files, rather than only unique ones, and also uses ToolOutputFile (without ever calling "keep") to ensure the files are deleted as soon as the interestingness test is run. llvm-svn: 371696
* [X86] Enable -mprefer-vector-width=256 by default for Skylake-avx512 and ↵Craig Topper2019-09-114-2/+20
| | | | | | | | | | | | | | | | later Intel CPUs. AVX512 instructions can cause a frequency drop on these CPUs. This can negate the performance gains from using wider vectors. Enabling prefer-vector-width=256 will prevent generation of zmm registers unless explicit 512 bit operations are used in the original source code. I believe gcc and icc both do something similar to this by default. Differential Revision: https://reviews.llvm.org/D67259 llvm-svn: 371694
* [AArch64][GlobalISel] Fall back on attempts to allocate split types on the ↵Amara Emerson2019-09-113-6/+37
| | | | | | | | | | | | | | | stack. First we were asserting that the ValNo of a VA was the wrong value. It doesn't actually make a difference for us in CallLowering but fix that anyway to silence the assert. The bigger issue was that after fixing the assert we were generating invalid MIR because the merging/unmerging of values split across multiple registers wasn't also implemented for memory locs. This happens when we run out of registers and have to pass the split types like i128 -> i64 x 2 on the stack. This is do-able, but for now just fall back. llvm-svn: 371693
* [GlobalISel][AArch64] Check caller for swifterror params in tailcall eligibilityJessica Paquette2019-09-113-47/+16
| | | | | | | | | | | | | | | | Before, we only checked the callee for swifterror. However, we should also be checking the caller to see if it has a swifterror parameter. Since we don't currently handle outgoing arguments, this didn't show up in the swifterror.ll testcase. Also, remove the swifterror checks from call-translator-tail-call.ll, since they are covered by the existing swifterror testing. Better to have it all in one place. Differential Revision: https://reviews.llvm.org/D67465 llvm-svn: 371692
* [dfsan] Revert dfsan_set_label removalVitaly Buka2019-09-111-0/+5
| | | | | | It's part of interface, maybe it is used in external code. llvm-svn: 371691
* [Reproducer] Move the command loader into the reproducer (NFC)Jonas Devlieghere2019-09-113-48/+53
| | | | | | | | This just moves the CommandLoader utility into the reproducer namespace and makes it accessible outside the API layer. This is setting things up for a bigger change. llvm-svn: 371689
* [NFC] Reformat SBDebugger before making changesJonas Devlieghere2019-09-111-31/+14
| | | | llvm-svn: 371688
* Remove NOLINTs from compiler-rtVitaly Buka2019-09-1192-398/+402
| | | | llvm-svn: 371687
* [Reproducer] Move GDB Remote Provider into Reproducer (NFC)Jonas Devlieghere2019-09-113-44/+45
| | | | | | | | | | | | | | Originally the idea was for providers to be defined close to where they are used. While this helped designing the providers in such a way that they don't depend on each other, it also means that it's not possible to access them from a central place. This proved to be a problem for some providers and resulted in them living in the reproducer class. The ProcessGDBRemote provider is the last remaining exception. This patch makes things consistent and moves it into the reproducer like the other providers. llvm-svn: 371685
* [TableGen] Skip CRLF conversion when writing outputReid Kleckner2019-09-111-2/+2
| | | | | | | | | Doing the CRLF translation while writing the file defeats our optimization to not update the file if it hasn't changed. Fixes PR43271. llvm-svn: 371683
* [InstCombine] rename variable for readability; NFCSanjay Patel2019-09-111-21/+21
| | | | | | | There's more that can be done here, but "OpI" doesn't convey that we casted to BinaryOperator. llvm-svn: 371682
* Add some missing changes to GSYM that was addressing a gcc compilation error ↵David Blaikie2019-09-113-14/+14
| | | | | | due to a type and variable with the same name llvm-svn: 371681
* Fix mac buildVitaly Buka2019-09-111-4/+4
| | | | llvm-svn: 371680
* PR43278: Temporarily disable llvm-reduce tests due to exhausting temp filesDavid Blaikie2019-09-113-6/+6
| | | | llvm-svn: 371679
* [X86] Fix latent bugs in 32-bit CMPXCHG8B inserterReid Kleckner2019-09-113-7/+72
| | | | | | | | | | | | | | | I found three issues: 1. the loop over E[ABCD]X copies run over BB start 2. the direct address of cmpxchg8b could be a frame index 3. the displacement of cmpxchg8b could be a global instead of an immediate These were all introduced together in r287875, and should be fixed with this change. Issue reported by Zachary Turner. llvm-svn: 371678
* [ConstantFolding] Refactor math functions to use LLVM ones (NFC)Evandro Menezes2019-09-111-37/+42
| | | | | | | | | When possible, replace calls to library routines on the host with equivalent ones in LLVM. Differential revision: https://reviews.llvm.org/D67459 llvm-svn: 371677
* Revert [llvm-nm] Add tapi file supportCyndy Ishida2019-09-1115-298/+20
| | | | | | This reverts r371576 (git commit f88f46358dbffa20af3b054a9346e5154789d50f) llvm-svn: 371676
* Update compiler-rt cpplint.pyVitaly Buka2019-09-1121-2726/+4953
| | | | | | https://github.com/cpplint/cpplint/commit/adb3500107f409ac5491188ae652ac3f4d03d9d3 llvm-svn: 371675
* Revert [Object][TextAPI] NFC, fix tapi lit testsCyndy Ishida2019-09-112-6/+6
| | | | | | This reverts r371577 (git commit b2b0ccab2f76733679eeceecf31b21ebc1fe23ac) llvm-svn: 371674
* [X86] Add test case for v16i64->v16i32 truncate on min-legal-vector-width=256.Craig Topper2019-09-111-0/+19
| | | | | | I think this case would crash before I added back the -x86-experimental-vector-widening command line option. Adding this test case to prevent breaking it again when we remove the option. llvm-svn: 371673
* [X86] Move x86_64 fp128 conversion to libcalls from type legalization to DAG ↵Craig Topper2019-09-115-42/+177
| | | | | | | | | | | | | | legalization fp128 is considered a legal type for a register, but has almost no legal operations so everything needs to be converted to a libcall. Previously this was implemented by tricking type legalization into softening the operations with various checks for "is legal in hardware register" to change the behavior to still use f128 as the resulting type instead of converting to i128. This patch abandons this approach and instead moves the libcall conversions to LegalizeDAG. This is the approach taken by AArch64 where they also have a legal fp128 type, but no legal operations. I think this is more in spirit with how SelectionDAG's phases are supposed to work. I had to make some hacks for STRICT_FP_ROUND because some of the strict FP handling checks if ISD::FP_ROUND is Legal for a given result type, but I had to make ISD::FP_ROUND Custom to allow making a libcall when the input is f128. For all other types the Custom handler just returns the original node. These hacks are incomplete and don't work for a strict truncate from f128, but I don't think it worked before either since LegalizeFloatTypes doesn't know about strict ops yet. I've also raised PR43209 against AArch64 which currently crashes on a strict ftrunc from f64->f32 because of FP_ROUND being marked Custom for the same reason there. Differential Revision: https://reviews.llvm.org/D67128 llvm-svn: 371672
* AMDGPU: Move m0 initializations earlierAustin Kerbow2019-09-113-25/+131
| | | | | | | | | | | | | | | | | Summary: After hoisting and merging m0 initializations schedule them as early as possible in the MBB. This helps the scheduler avoid hazards in some cases. Reviewers: rampitec, arsenm Subscribers: kzhuravl, jvesely, wdng, nhaehnle, yaxunl, dstuttard, tpr, t-tye, hiraditya, arphaman, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D67450 llvm-svn: 371671
* gn build: Merge r371661Nico Weber2019-09-112-1/+1
| | | | llvm-svn: 371670
* gn build: Merge r371657Nico Weber2019-09-111-0/+1
| | | | llvm-svn: 371669
* [DWARF] Evaluate DW_OP_entry_valueVedant Kumar2019-09-119-8/+557
| | | | | | | | | | | | Add support for evaluating DW_OP_entry_value. This involves parsing DW_TAG_call_site_parameter and wiring the information through to the expression evaluator. rdar://54496008 Differential Revision: https://reviews.llvm.org/D67376 llvm-svn: 371668
* [Status] Add a LLDB_ERRORF macro for error reporting (similar to LLDB_LOGF)Vedant Kumar2019-09-111-0/+7
| | | | llvm-svn: 371667
* [DWARF] Emit call site parameter info when tuning for lldbVedant Kumar2019-09-112-28/+65
| | | | | | | | | Emit debug entry values using standard DWARF5 opcodes when the debugger tuning is set to lldb. Differential Revision: https://reviews.llvm.org/D67410 llvm-svn: 371666
* Fix up a test updated in r371655 - require case-insensitive file system.Volodymyr Sapsai2019-09-111-0/+1
| | | | | | | On case-sensitive file systems include with wrong case is not found instead of showing a warning. llvm-svn: 371665
* [clang-scan-deps] cast Result to ErrorOr<unique_ptr<vfs::File>> explicitly ↵Alex Lorenz2019-09-111-1/+2
| | | | | | to avoid s390x-linux buildbot failure llvm-svn: 371664
* Start porting ivfsoverlay tests to WindowsReid Kleckner2019-09-1122-51/+81
| | | | | | | | | | | | | | | | | | | | | | | | | Part of PR43272, the changes are: 1. Use @ as the sed pattern delimiter instead of : so that the drive letter in lit substitutions isn't an issue. 2. Use the %/t and %/S substitutions to get paths with forward slashes to work around string quoting issues in the yaml file. 3. Replace REQUIRES:shell with XFAIL:windows. These tests should pass on Windows, but do not for reasons that are not yet understood. We would like to know if they pass unexpectedly. I was able to remove the XFAILs from two tests, since they already pass with my sed fix: clang/test/VFS/module_missing_vfs.m clang/test/VFS/test_nonmodular.c Reviewers: amccarth Differential Revision: https://reviews.llvm.org/D67454 llvm-svn: 371663
* All Errors must be checkedChris Bieneman2019-09-111-3/+7
| | | | | | | | | | | | | | Summary: If an error is ever returned from any of the functions called here, the error must be joined with the Result Error before being returned otherwise the Result Error will assert on destruction. Reviewers: lhames Subscribers: llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D67407 llvm-svn: 371662
* [analyzer] NFC: Move PathDiagnostic classes to libAnalysis.Artem Dergachev2019-09-1120-21/+22
| | | | | | | | | | | | At this point the PathDiagnostic, PathDiagnosticLocation, PathDiagnosticPiece structures no longer rely on anything specific to Static Analyzer, so we can move them out of it for everybody to use. PathDiagnosticConsumers are still to be handed off. Differential Revision: https://reviews.llvm.org/D67419 llvm-svn: 371661
* [analyzer] NFC: Move resetDiagnosticLocationToMainFile() to BugReporter.Artem Dergachev2019-09-113-75/+79
| | | | | | | | | | This method of PathDiagnostic is a part of Static Analyzer's particular path diagnostic construction scheme. As such, it doesn't belong to the PathDiagnostic class, but to the Analyzer. Differential Revision: https://reviews.llvm.org/D67418 llvm-svn: 371660
* [analyzer] NFC: Move getStmt() and createEndOfPath() out of PathDiagnostic.Artem Dergachev2019-09-1119-195/+204
| | | | | | | | | | These static functions deal with ExplodedNodes which is something we don't want the PathDiagnostic interface to know anything about, as it's planned to be moved out of libStaticAnalyzerCore. Differential Revision: https://reviews.llvm.org/D67382 llvm-svn: 371659
* [analyzer] NFC: Re-implement stack hints as a side map in BugReport.Artem Dergachev2019-09-1110-174/+178
| | | | | | | | | | That's one of the few random entities in the PathDiagnostic interface that are specific to the Static Analyzer. By moving them out we could let everybody use path diagnostics without linking against Static Analyzer. Differential Revision: https://reviews.llvm.org/D67381 llvm-svn: 371658
* Add a LineTable class to GSYM and test it.Greg Clayton2019-09-116-24/+660
| | | | | | | | | | This patch adds the ability to create a gsym::LineTable object, populate it, encode and decode it and test all functionality. The full format of the LineTable encoding is specified in the header file LineTable.h. Differential Revision: https://reviews.llvm.org/D66602 llvm-svn: 371657
* [clang-scan-deps] add skip excluded conditional preprocessor block ↵Alex Lorenz2019-09-1118-15/+311
| | | | | | | | | | | | | | | preprocessing optimization This commit adds an optimization to clang-scan-deps and clang's preprocessor that skips excluded preprocessor blocks by bumping the lexer pointer, and not lexing the tokens until reaching appropriate #else/#endif directive. The skip positions and lexer offsets are computed when the file is minimized, directly from the minimized tokens. On an 18-core iMacPro with macOS Catalina Beta I got 10-15% speed-up from this optimization when running clang-scan-deps on the compilation database for a recent LLVM and Clang (3511 files). Differential Revision: https://reviews.llvm.org/D67127 llvm-svn: 371656
* Fix -Wnonportable-include-path suppression for header maps with absolute paths.Volodymyr Sapsai2019-09-116-14/+38
| | | | | | | | | | | | | | | | | | | | | | | | | | In `DirectoryLookup::LookupFile` parameter `HasBeenMapped` doesn't cover the case when clang finds a file through a header map but doesn't remap the lookup filename because the target path is an absolute path. As a result, -Wnonportable-include-path suppression for header maps introduced in r301592 wasn't triggered. Change parameter `HasBeenMapped` to `IsInHeaderMap` and use parameter `MappedName` to track the filename remapping. This way we can handle both relative and absolute paths in header maps, and account for their specific properties, like filename remapping being a property preserved across lookups in multiple directories. rdar://problem/39516483 Reviewers: dexonsmith, bruno Reviewed By: dexonsmith Subscribers: jkorous, cfe-commits, ributzka Differential Revision: https://reviews.llvm.org/D58094 llvm-svn: 371655
* [Plugins/Process] Remove direct use of ClangASTContext from InferiorCallPOSIXAlex Langford2019-09-111-11/+21
| | | | | | | | | | | | | Summary: InferiorCallPOSIX directly grabs a ClangASTContext from the Target it has and does no error checking. I don't think these functions have a reason to know about clang specifically. Additionally, using `GetScratchTypeSystemForLanguage` forces us to do error checking since it returns an Expected. Differential Revision: https://reviews.llvm.org/D67427 llvm-svn: 371654
* [llvm-reduce] Fix a bug, improve error handling when running testReid Kleckner2019-09-112-4/+9
| | | | | | | | | | llvm::sys::ExecuteAndWait can report errors, so let's make use of that. Second, while iterating uses of functions to remove, a call can appear multiple times. Use a SetVector so we don't attempt to erase such a call twice. llvm-svn: 371653
* Update link to the DWARF spec.Adrian Prantl2019-09-111-6/+6
| | | | llvm-svn: 371650
* [AMDGPU] Fix crash in phi-elimination hook.Michael Liao2019-09-112-2/+30
| | | | | | | | | | | | | | Summary: - Pre-check in case there's just a single PHI insn. Reviewers: alex-t, rampitec, arsenm Subscribers: kzhuravl, jvesely, wdng, nhaehnle, dstuttard, tpr, t-tye, hiraditya, llvm-commits, yaxunl Tags: #llvm Differential Revision: https://reviews.llvm.org/D67451 llvm-svn: 371649
* Update documentation.Adrian Prantl2019-09-111-6/+6
| | | | llvm-svn: 371648
* [libFuzzer] Remove hardcoded number of new features in merge_two_step.test.Max Moroz2019-09-111-2/+2
| | | | | | | | | | | | | | | | | | | | Summary: The number of features can be different on different platforms. This should fixed broken builders, e.g. http://lab.llvm.org:8011/builders/clang-cmake-aarch64-full/builds/7946 Reviewers: Dor1s Reviewed By: Dor1s Subscribers: kristof.beyls, delcypher, #sanitizers, llvm-commits Tags: #llvm, #sanitizers Differential Revision: https://reviews.llvm.org/D67458 llvm-svn: 371647
* [NFC] Added triple to test file to avoid arm buildbots failuresDavid Bolvansky2019-09-111-1/+2
| | | | llvm-svn: 371646
* Fix test failures after r371640Matt Arsenault2019-09-112-7/+6
| | | | | | r371640 evidently fixed bug 39481 llvm-svn: 371645
* [ConstantHoisting] Fix non-determinism.Eli Friedman2019-09-112-16/+16
| | | | | | Differential Revision: https://reviews.llvm.org/D66114 llvm-svn: 371644
* [IRMover] Don't map globals if their types are the samePirama Arumuga Nainar2019-09-113-1/+84
| | | | | | | | | | | | | | | | | | | | | | | | | Summary: During IR Linking, if the types of two globals in destination and source modules are the same, it can only be because the global in the destination module is originally from the source module and got added to the destination module from a shared metadata. We shouldn't map this type to itself in case the type's components get remapped to a new type from the destination (for instance, during the loop over SrcM->getIdentifiedStructTypes() further below in IRLinker::computeTypeMapping()). Fixes PR40312. Reviewers: tejohnson, pcc, srhines Subscribers: mehdi_amini, hiraditya, steven_wu, dexonsmith, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D66814 llvm-svn: 371643
OpenPOWER on IntegriCloud