summaryrefslogtreecommitdiffstats
path: root/llvm/utils
Commit message (Collapse)AuthorAgeFilesLines
* TableGen/GlobalISel: Fix handling of truncstore patternsMatt Arsenault2019-07-151-1/+8
| | | | | | | | | | | | This was failing to import the AMDGPU truncstore patterns. The truncating stores from 32-bit to 8/16 were then somehow being incorrectly selected to a 4-byte store. A separate check is emitted for the LLT size in comparison to the specific memory VT, which looks strange to me but makes sense based on the hierarchy of PatFrags used for the default truncstore PatFrags. llvm-svn: 366129
* TableGen: Add address space to matchersMatt Arsenault2019-07-153-4/+113
| | | | | | | | | | | | | | | | | Currently AMDGPU uses a CodePatPred to check address spaces from the MachineMemOperand. Introduce a new first class property so that the existing patterns can be easily modified to uses the new generated predicate, which will also be handled for GlobalISel. I would prefer these to match against the pointer type of the instruction, but that would be difficult to get working with SelectionDAG compatbility. This is much easier for now and will avoid a painful tablegen rewrite for all the loads and stores. I'm also not sure if there's a better way to encode multiple address spaces in the table, rather than putting the number to expect. llvm-svn: 366128
* ARM MTE stack sanitizer.Evgeniy Stepanov2019-07-151-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | Add "memtag" sanitizer that detects and mitigates stack memory issues using armv8.5 Memory Tagging Extension. It is similar in principle to HWASan, which is a software implementation of the same idea, but there are enough differencies to warrant a new sanitizer type IMHO. It is also expected to have very different performance properties. The new sanitizer does not have a runtime library (it may grow one later, along with a "debugging" mode). Similar to SafeStack and StackProtector, the instrumentation pass (in a follow up change) will be inserted in all cases, but will only affect functions marked with the new sanitize_memtag attribute. Reviewers: pcc, hctim, vitalybuka, ostannard Subscribers: srhines, mehdi_amini, javed.absar, kristof.beyls, hiraditya, cryptoad, steven_wu, dexonsmith, cfe-commits, llvm-commits Tags: #clang, #llvm Differential Revision: https://reviews.llvm.org/D64169 llvm-svn: 366123
* gn build: Add a note on how to locally tell git to ignore build dirNico Weber2019-07-151-0/+2
| | | | llvm-svn: 366072
* [GitSVN][NFC] Mark dry-run commits as such in the log outputJohannes Doerfert2019-07-141-2/+2
| | | | | | | | | | | | | | Summary: This helps to avoid worries about the "dry run flag" while testing. Reviewers: jyknight, rnk, mehdi_amini Subscribers: bollu, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D64697 llvm-svn: 366023
* Fix some minor coding-style issues in git-llvm.James Y Knight2019-07-121-32/+39
| | | | llvm-svn: 365918
* Allow the 'git-llvm' tool to push to svn from the split repositoriesJames Y Knight2019-07-121-14/+30
| | | | | | | | | for 'test-suite', 'lnt', 'zorg', and 'www'. This is done by looking at the pathname of the git remote named 'origin', which is not 100% reliable, but should work in most cases. llvm-svn: 365917
* [gn] Tag unneeded variable.Bryant Wong2019-07-121-0/+3
| | | | | | | | | | When only building targets without assembly parsers (e.g. `llvm_targets_to_build = ["NVPTX"]`), `all_targets` is empty and causes GN to warn about an assigned-but-unused variable. Differential Revision: https://reviews.llvm.org/D31727 llvm-svn: 365897
* [LIT] Emit timeout error message only if timeout was reachedAlexey Bader2019-07-121-1/+1
| | | | | | | | | | | | | | | | | | | | | | Summary: This improves readability of LIT output: previously error messages gets emitted that say that there was no error: error: command reached timeout: False Patch by Alexey Sachkov. Reviewers: ddunbar, mgorny, modocache Reviewed By: mgorny Subscribers: delcypher, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D64240 llvm-svn: 365895
* NFC: lit: python3 compatibility for functionsAlex Lorenz2019-07-121-2/+2
| | | | | | | | usePlatformSdkOnDarwin/findPlatformSdkVersionOnMacOS These functions should decode subprocess output llvm-svn: 365852
* [UpdateTestChecks] Emit warning when invalid test pathsDavid Bolvansky2019-07-111-1/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | Summary: Recently I ran into the following issue: ./update_test_checks.py /path/not-existing-file.ll The script was silent and I was suprised why the real test file hadn't been updated. Solution: Emit warning if we detect this problem. Reviewers: lebedev.ri, spatel, jdoerfert, nikic Reviewed By: lebedev.ri, spatel, jdoerfert, nikic Subscribers: jdoerfert, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D64572 llvm-svn: 365818
* gn build: Merge r365792Nico Weber2019-07-112-0/+2
| | | | llvm-svn: 365795
* gn build: Merge r365773Nico Weber2019-07-111-0/+1
| | | | llvm-svn: 365787
* gn build: Merge r365687Nico Weber2019-07-102-0/+2
| | | | llvm-svn: 365689
* gn build: Merge r365585Nico Weber2019-07-101-0/+1
| | | | llvm-svn: 365633
* gn build: Merge r365536.Peter Collingbourne2019-07-091-0/+1
| | | | llvm-svn: 365572
* gn build: Merge r365532.Peter Collingbourne2019-07-091-1/+1
| | | | llvm-svn: 365571
* gn build: Merge r365541.Peter Collingbourne2019-07-092-0/+6
| | | | llvm-svn: 365570
* gn build: Merge r365531.Peter Collingbourne2019-07-091-0/+1
| | | | llvm-svn: 365569
* gn build: Merge r365503.Peter Collingbourne2019-07-091-0/+2
| | | | llvm-svn: 365530
* gn build: Merge r365453Nico Weber2019-07-091-0/+1
| | | | llvm-svn: 365481
* Update gn filesVitaly Buka2019-07-082-0/+4
| | | | llvm-svn: 365361
* Update gn filesVitaly Buka2019-07-083-0/+3
| | | | llvm-svn: 365354
* [lit] Parse command-line options from LIT_OPTSJoel E. Denny2019-07-084-1/+44
| | | | | | | | | | | | | | | | | Similar to `FILECHECK_OPTS` for FileCheck, `LIT_OPTS` makes it easy to adjust lit behavior when running the test suite via ninja. For example: ``` $ LIT_OPTS='--time-tests -vv --filter=threadprivate' \ ninja check-clang-openmp ``` Reviewed By: probinson Differential Revision: https://reviews.llvm.org/D64135 llvm-svn: 365313
* [UpdateTestChecks] Skip over .Lfunc_begin for RISC-VAlex Bradbury2019-07-081-1/+1
| | | | | | | | This mirrors the change made for X86 in rL336987. Without this patch, update_llc_test_checks will completely skip functions with personality functions. llvm-svn: 365297
* gn build: Merge r355546Nico Weber2019-07-071-0/+2
| | | | | | Found by inspection; the sync script doesn't sync .ipp files. llvm-svn: 365280
* gn build: Merge r365273Nico Weber2019-07-071-0/+1
| | | | llvm-svn: 365279
* gn build: Sort sync script outputNico Weber2019-07-071-2/+2
| | | | llvm-svn: 365278
* gn build: Sort cxx_sources in libcxx build fileNico Weber2019-07-071-33/+33
| | | | | | | | | | | Since these are in a custom list, `gn format` doesn't automatically sort them. Now their order matches the CMake build. No additions or deletions, this just sorts the files that are there. llvm-svn: 365277
* gn build: Merge r365258 and follow-ups r365263, r365264Nico Weber2019-07-071-0/+4
| | | | llvm-svn: 365276
* [CodeGen] Add larger vector types for i32 and f32David Majnemer2019-07-071-0/+12
| | | | | | | | | | Some out of tree backend require larger vector type. Since maintaining the changes out of tree is difficult due to the many manual changes needed when adding a new type we are adding it even if no backend currently use it. Differential Revision: https://reviews.llvm.org/D64141 Patch by Thomas Raoux! llvm-svn: 365274
* gn build: Merge r365203Nico Weber2019-07-051-0/+1
| | | | llvm-svn: 365213
* gn build: Merge r365179Nico Weber2019-07-051-0/+1
| | | | llvm-svn: 365185
* gn build: Merge r365130.Peter Collingbourne2019-07-051-0/+1
| | | | llvm-svn: 365167
* gn build: Merge r365103.Peter Collingbourne2019-07-051-0/+1
| | | | llvm-svn: 365166
* gn build: Merge r365007.Peter Collingbourne2019-07-051-0/+1
| | | | llvm-svn: 365165
* gn build: Merge r365091.Peter Collingbourne2019-07-055-3/+23
| | | | llvm-svn: 365164
* [TableGen] Allow DAG isel patterns to override default operands.Simon Tatham2019-07-043-10/+42
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When a Tablegen instruction description uses `OperandWithDefaultOps`, isel patterns for that instruction don't have to fill in the default value for the operand in question. But the flip side is that they actually //can't// override the defaults even if they want to. This will be very inconvenient for the Arm backend, when we start wanting to write isel patterns that generate the many MVE predicated vector instructions, in the form with predication actually enabled. So this small Tablegen fix makes it possible to write an isel pattern either with or without values for a defaulted operand, and have the default values filled in only if they are not overridden. If all the defaulted operands come at the end of the instruction's operand list, there's a natural way to match them up to the arguments supplied in the pattern: consume pattern arguments until you run out, then fill in any missing instruction operands with their default values. But if defaulted and non-defaulted operands are interleaved, it's less clear what to do. This does happen in existing targets (the first example I came across was KILLGT, in the AMDGPU/R600 backend), and of course they expect the previous behaviour (that the default for those operands is used and a pattern argument is not consumed), so for backwards compatibility I've stuck with that. Reviewers: nhaehnle, hfinkel, dmgreen Subscribers: mehdi_amini, javed.absar, tpr, kristof.beyls, steven_wu, dexonsmith, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D63814 llvm-svn: 365114
* [Bitcode] Move Bitstream to a separate libraryFrancis Visoiu Mistrih2019-07-031-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | This moves Bitcode/Bitstream*, Bitcode/BitCodes.h to Bitstream/. This is needed to avoid a circular dependency when using the bitstream code for parsing optimization remarks. Since Bitcode uses Core for the IR part: libLLVMRemarks -> Bitcode -> Core and Core uses libLLVMRemarks to generate remarks (see IR/RemarkStreamer.cpp): Core -> libLLVMRemarks we need to separate the Bitstream and Bitcode part. For clang-doc, it seems that it doesn't need the whole bitcode layer, so I updated the CMake to only use the bitstream part. Differential Revision: https://reviews.llvm.org/D63899 llvm-svn: 365091
* Fix GN buildVitaly Buka2019-07-021-1/+0
| | | | llvm-svn: 364942
* gn build: Merge r364866Nico Weber2019-07-021-0/+1
| | | | llvm-svn: 364908
* [UpdateTestChecks][PowerPC] Avoid empty string when scrubbing loop commentsJinsong Ji2019-07-011-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: SCRUB_LOOP_COMMENT_RE was introduced in https://reviews.llvm.org/D31285 This works for some loops. However, we may generate lines with loop comments only. And since we don't scrub leading white spaces, this will leave an empty line there, and FileCheck will complain it. eg: llvm/test/CodeGen/PowerPC/PR35812-neg-cmpxchg.ll:27:15: error: found empty check string with prefix 'CHECK:' ; CHECK-NEXT: This prevented us from using the `update_llc_test_checks.py` for quite some cases. We should still keep the comment token there, so that we can safely scrub the loop comment without breaking FileCheck. Reviewers: timshen, hfinkel, lebedev.ri, RKSimon Subscribers: nemanjai, jfb, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D63957 llvm-svn: 364775
* [benchmark] Disable CMake get_git_versionAndrew Ng2019-07-012-2/+7
| | | | | | | | | | | | | | | Disabled CMake get_git_version as it is meaningless for this in-tree build, and hardcoded a null version. Not using get_git_version avoids a refresh of the git index that is executed by get_git_version. Refreshing the index can take a considerable amount of time if the index needs to be refreshed (particularly with the mono repo). This situation can arise when building shared source on a host in VMs. Differential Revision: https://reviews.llvm.org/D63925 llvm-svn: 364742
* Clean up MSVC visualization of LLVM pointer typesMike Spertus2019-06-301-14/+5
| | | | | | | | | | | Create separate natvis ptr and int views for PointerIntPair. These are convenient in watch Windows and will be used by Clang visualizers to be checked in shortly Also, removed deref views as the MSVC na format has done the same thing natively since MSVC2013. llvm-svn: 364723
* [UpdateChecks] Add support for armv7-apple-darwinJinsong Ji2019-06-281-0/+9
| | | | | | | | | | | armv7-apple-darwin was not supported well, the script can't generate checks. https://reviews.llvm.org/D60601/new/#inline-568671 Differential Revision: https://reviews.llvm.org/D63939 llvm-svn: 364668
* [compiler-rt] Rename lit.*.cfg.* -> lit.*.cfg.py.*Reid Kleckner2019-06-271-2/+2
| | | | | | | | | | | | | These lit configuration files are really Python source code. Using the .py file extension helps editors and tools use the correct language mode. LLVM and Clang already use this convention for lit configuration, this change simply applies it to all of compiler-rt. Reviewers: vitalybuka, dberris Differential Revision: https://reviews.llvm.org/D63658 llvm-svn: 364591
* [GN] Update build fileVitaly Buka2019-06-271-1/+0
| | | | llvm-svn: 364583
* [GN] Set exit code to 1 if changes are neededVitaly Buka2019-06-271-2/+12
| | | | llvm-svn: 364582
* gn build: Follow-up to r364491 "[GN] Update build files"Nico Weber2019-06-275-4/+19
| | | | | | | | | | | - Merge r364427 (GSYM lib) more: It was missing the new unit test (as pointed out by llvm/utils/gn/build/sync_source_lists_from_cmake.py), and it had some superfluous deps not present in the cmake build. - Merge r364474 (clang DependencyScanning lib) more: The deps didn't quite match cmake. llvm-svn: 364501
* [GN] Fix check-llvmVitaly Buka2019-06-271-0/+14
| | | | llvm-svn: 364493
OpenPOWER on IntegriCloud