summaryrefslogtreecommitdiffstats
path: root/llvm/utils
Commit message (Collapse)AuthorAgeFilesLines
* TableGen: Add IsOptional field to AsmOperandClassTom Stellard2016-02-051-1/+15
| | | | | | | | | | | | | | | Summary: This makes it possible to specify some operands as optional to the AsmMatcher. Setting this field to true will prevent the AsmMatcher from emitting 'too few operands' errors when there are missing optional operands. Reviewers: olista01, ab Subscribers: nhaustov, arsenm, llvm-commits Differential Revision: http://reviews.llvm.org/D15755 llvm-svn: 259913
* The canonical way to XFAIL a test for all targets is XFAIL: *, not XFAIL:Benjamin Kramer2016-02-041-1/+1
| | | | | | | | Fix the lit bug that enabled this "feature" (empty triple is substring of all possible target triples) and change the two outliers to use the documented * syntax. llvm-svn: 259799
* Unify the target opcode enum in TargetOpcodes.h and the FixedInstrs array inDavid L Kreitzer2016-02-031-12/+2
| | | | | | | | CodeGenTarget.cpp to avoid the ordering dependence. NFCI. Differential Revision: http://reviews.llvm.org/D16826 llvm-svn: 259726
* Minor performance tweaks to llvm-tblgen (and a few that might be a good idea)Reid Kleckner2016-02-032-2/+5
| | | | | | | | | | | | | | | | | | | | | | | | | Summary: This patch adds a reserve call to an expensive function (`llvm::LoadIntrinsics`), and may fix a few other low hanging performance fruit (I've put them in comments for now, so we can discuss). **Motivation:** As I'm sure other developers do, when I build LLVM, I build the entire project with the same config (`Debug`, `MinSizeRel`, `Release`, or `RelWithDebInfo`). However, the `Debug` config also builds llvm-tblgen in `Debug` mode. Later build steps that run llvm-tblgen then can actually be the slowest steps in the entire build. Nobody likes slow builds. Reviewers: rnk, dblaikie Differential Revision: http://reviews.llvm.org/D16832 Patch by Alexander G. Riccio llvm-svn: 259683
* [TableGen] Add 'register alternative name matching' supportDylan McKay2016-02-031-0/+34
| | | | | | | | | | | | | | | | | Summary: This adds a new attribute which targets can set in TableGen which causes a function to be generated which matches register alternative names. This is very similar to `ShouldEmitMatchRegisterName`, except it works on alt names. This patch is currently used by the out of tree part of the AVR backend. It reduces code duplication greatly, and has the effect that you do not need to hardcode altname to register mappings in C++. It will not work on targets which have registers which share the same aliases. Reviewers: stoklund, arsenm, dsanders, hfinkel, vkalintiris Subscribers: hfinkel, dylanmckay, llvm-commits Differential Revision: http://reviews.llvm.org/D16312 llvm-svn: 259636
* Remove utils/builditJustin Bogner2016-02-022-493/+0
| | | | | | | The autoconf build system was removed - this doesn't even work and doesn't need to be here. llvm-svn: 259582
* Fix Clang-tidy readability-redundant-control-flow warnings; other minor fixes.Eugene Zelenko2016-02-021-11/+5
| | | | | | Differential revision: http://reviews.llvm.org/D16793 llvm-svn: 259539
* [TableGen] Store result of getInstructionsByEnumValue in an ArrayRef instead ↵Craig Topper2016-02-015-15/+11
| | | | | | of accidentally copying to a vector. llvm-svn: 259336
* No need to use utostr/utohexstr when writing into a raw_ostream. NFCCraig Topper2016-01-311-24/+30
| | | | llvm-svn: 259314
* Bring back the test-suite export in test-release without bringing back the ↵Daniel Sanders2016-01-281-7/+19
| | | | | | | | | | | | | | | | | build failures. Summary: r257791 disabled the test-suite export since the addition of CMakeLists.txt was causing build failures. This patch exports the test-suite again but does so outside the source tree so that it isn't included in the Phase[123] builds. Reviewers: hans Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D16679 llvm-svn: 259094
* [utils] Add windows support to update_llc_test_checks.pySimon Pilgrim2016-01-271-1/+3
| | | | | | | | Strip dos line endings from llc generated files to allow the regex patterns to match them. Ensure updated *.ll files are generated with unix style line endings. llvm-svn: 258987
* Add "/dev/tty" as a special file name for lit tests.Yunzhong Gao2016-01-271-0/+4
| | | | | | | | | | | | If a lit test has a RUN line that includes a redirection to "/dev/tty", the redirection goes to the special device file corresponding to the console. It is /dev/tty on UNIX-like systems and "CON" on Windows. This patch is needed to implement a test like PR25717 (caused by the size limit of the Windows system call WriteConsole() prior to Windows 8) where the test only breaks when outputing to the console and won't fail if using a pipe. llvm-svn: 258898
* [llvm-tblgen] Avoid StringMatcher for GCC and MS builtin namesReid Kleckner2016-01-271-91/+56
| | | | | | | | | | | | | | | This brings the compile time of Function.cpp from ~40s down to ~4s for me locally. It also shaves off about 400KB of object file size in a release+asserts build. I also realized that the AMDGPU backend does not have any GCC builtin names to match, so the extra lookup was a no-op. I removed it to silence a zero-length string table array warning. There should be no functional change here. This change really ends the story of PR11951. llvm-svn: 258897
* test-release.sh: Ignore LC_CTYPE in sed invocation on DarwinHans Wennborg2016-01-271-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Here, sed is used to prepare object files for comparison via cmp. On my Darwin 15.4.0 machine, LC_CTYPE is set to UTF-8 (by default, I believe). Under these circumstances, anything sed is made to read will be treated as UTF-8, prompting it to signal an error if it is not, like so: % sed s/a/b/ <(head -n1 /dev/random) >/dev/null; echo $? sed: RE error: illegal byte sequence 1 % To make sed work as expected, I need to set LC_CTYPE to C: % env LC_CTYPE=C sed s/a/b/ <(head -n1 /dev/random) >/dev/null; echo $? 0 % Without this change, sed will exit with an error for every single file that it compares between phase 2 and phase 3, thereby making it look as if the differences were far larger than they are. Patch by Elias Pipping! Differential Revision: http://reviews.llvm.org/D16548 llvm-svn: 258891
* [llvm-tblgen] Stop emitting the intrinsic name matching codeReid Kleckner2016-01-261-60/+0
| | | | | | | | | The AMDGPU backend was the last user of the old StringMatcher recognition code. Move it over to the new lookupLLVMIntrinsicName funciton, which is now improved to handle all of the interesting edge cases exposed by AMDGPU intrinsic names. llvm-svn: 258875
* Remove autoconf supportChris Bieneman2016-01-2612-267/+0
| | | | | | | | | | | | | | | | Summary: This patch is provided in preparation for removing autoconf on 1/26. The proposal to remove autoconf on 1/26 was discussed on the llvm-dev thread here: http://lists.llvm.org/pipermail/llvm-dev/2016-January/093875.html "I felt a great disturbance in the [build system], as if millions of [makefiles] suddenly cried out in terror and were suddenly silenced. I fear something [amazing] has happened." - Obi Wan Kenobi Reviewers: chandlerc, grosbach, bob.wilson, tstellarAMD, echristo, whitequark Subscribers: chfast, simoncook, emaste, jholewinski, tberghammer, jfb, danalbert, srhines, arsenm, dschuff, jyknight, dsanders, joker.eph, llvm-commits Differential Revision: http://reviews.llvm.org/D16471 llvm-svn: 258861
* Fix Clang-tidy modernize-use-nullptr and modernize-use-override warnings; ↵Eugene Zelenko2016-01-261-14/+10
| | | | | | | | other minor fixes. Differential revision: reviews.llvm.org/D16568 llvm-svn: 258831
* Sort intrinsics by LLVM intrinsic name, rather than tablegen def nameReid Kleckner2016-01-261-0/+4
| | | | | | | | | | | | Step one towards using a simple binary search to lookup intrinsic IDs instead of our crazy table generated switch+memcmp+startswith code that makes Function.cpp take about a minute to compile. See PR24785 and PR11951 for why we should do this. The X86 backend contains tables that need to be sorted on intrinsic ID, so reorder those. llvm-svn: 258757
* [TableGen] Fix sort order of asm operand classesOliver Stannard2016-01-251-20/+85
| | | | | | | | | | | | | | | | | | | | | | This is a fix for https://llvm.org/bugs/show_bug.cgi?id=22796. The previous implementation of ClassInfo::operator< allowed cycles of classes such that x < y < z < x, meaning that a list of them cannot be correctly sorted, and the sort order could differ with different standard libraries. The original implementation sorted classes by ValueName if they were otherwise equal. This isn't strictly necessary, but some backends seem to accidentally rely on it. If I reverse this comparison I get 8 test failures spread across the AArch64, Mips and X86 backends, so I have left it in until those backends can be fixed. There was one case in the X86 backend where the observable behaviour of the assembler is changed by this patch. This was because some of the memory asm operands were not marked as children of X86MemAsmOperand. Differential Revision: http://reviews.llvm.org/D16141 llvm-svn: 258677
* [TableGen] In AsmWriterEmitter unique command search, rather than storing a ↵Craig Topper2016-01-241-43/+32
| | | | | | | | mapping from instruction to unique command, instead store a list of which instructions each unique command corresponds to. This simplifies the complexity of the code that tries to find further operands to merge into the unique command. llvm-svn: 258656
* [TableGen] Make a class member local to the function that populates it and ↵Craig Topper2016-01-221-1/+2
| | | | | | consumes it later. NFC llvm-svn: 258490
* [TableGen] Reorder fields in AsmWriterOperand to remove padding and reduce ↵Craig Topper2016-01-221-6/+5
| | | | | | size. NFC llvm-svn: 258489
* [TableGen] Remove the CGIOpNo from AsmWriterOperand as its not used for ↵Craig Topper2016-01-222-8/+3
| | | | | | anything. NFC llvm-svn: 258488
* In test-release.sh, only run `uname -s` once. NFC.Dimitry Andric2016-01-211-3/+4
| | | | llvm-svn: 258439
* Let test-release.sh checkout subprojects directly into the target tree,Dimitry Andric2016-01-211-43/+23
| | | | | | | | | | | | | | | | | | | | | instead of using symlinks Summary: In the past I have run into several problems with the way `test-release.sh` creates all the subproject directories as siblings, and then uses symlinks to stitch them all together. In some scenarios this leads to clang not being able to find header files, etc. This patch changes the script so it directly exports into the correct target locations for each subproject. Reviewers: hans Subscribers: emaste, llvm-commits Differential Revision: http://reviews.llvm.org/D16420 llvm-svn: 258436
* [GlobalISel] Add a generic machine opcode for ADD.Quentin Colombet2016-01-201-0/+5
| | | | | | | | | | | The selection process being split into separate passes, we need generic opcodes to translate the LLVM IR to target independent code. This patch adds an opcode for addition: G_ADD. Differential Revision: http://reviews.llvm.org/D15472 llvm-svn: 258333
* Fix undefined behavior in llvm's local changes to googletest.Nico Weber2016-01-192-1/+5
| | | | | | | | | r100895 landed an llvm-only change to add minix support to googletest. It did that by putting "defined()" in a macro, which has undefined behavior. Slightly reshuffle things to remove that undefined behavior. Also mention in README.LLVM that minix support is a local change. llvm-svn: 258190
* test-release.sh: Use CMake also for DarwinHans Wennborg2016-01-191-5/+0
| | | | | | This didn't work for 3.7, but hopefully it should work now. llvm-svn: 258168
* [TableGen] Merge the SuperClass Record and SMRange vector into a single ↵Craig Topper2016-01-181-4/+3
| | | | | | vector. This removes the state needed to manage the extra vector thus reducing the size of the Record class. NFC llvm-svn: 258065
* [TableGen] Keep a returned const reference instead of making a copy. NFCCraig Topper2016-01-171-1/+1
| | | | llvm-svn: 258020
* [TableGen] Replace instructions() with getInstructionsByEnumValue(). No need ↵Craig Topper2016-01-175-11/+8
| | | | | | to make an iterator_range when we already have a function that returns an ArrayRef. NFC llvm-svn: 258019
* [TableGen] Return ArrayRef instead of a std::vector reference from ↵Craig Topper2016-01-173-19/+19
| | | | | | getInstructionsByEnumValue(). NFC llvm-svn: 258018
* [TableGen] Use std::find instead of a manual loop. NFCCraig Topper2016-01-171-3/+1
| | | | llvm-svn: 258017
* [TableGen] Use a StringRef instead of creating a new std::string. It gets ↵Craig Topper2016-01-171-3/+2
| | | | | | passed to a function that takes a StringRef anyway. NFC llvm-svn: 258007
* [TableGen] Changes to AsmWriterEmitter to remove the CodeGenInstruction to ↵Craig Topper2016-01-173-70/+49
| | | | | | | | AsmWriterInst map. NFC Adds the corresponding CodeGenInstruction number to each AsmWriterInst. Then write all the operand uniqueing loops using the AsmWriterInst array and indices. Then use the CodeGenInstruction index to fill out the OpCodeInfo array. llvm-svn: 258005
* [TableGen] Use std::find instead of a manual loop. NFCCraig Topper2016-01-171-10/+8
| | | | llvm-svn: 258004
* Similar to rL257663, remove `function` keywords from export.sh andDimitry Andric2016-01-162-5/+5
| | | | | | tag.sh, since they are marked to be run with /bin/sh. llvm-svn: 257994
* test-release.sh: Fix clang-tools-extra symlink for CMake buildHans Wennborg2016-01-151-3/+13
| | | | | | The CMake and Autoconf builds want the symlink set up differently. llvm-svn: 257905
* Exclude test-suite from CMake builds in test-release.shHans Wennborg2016-01-141-0/+6
| | | | | | | It's broken. In 3.7 there wasn't a CMake build for test-suite at all, so we're not losing something we had before. llvm-svn: 257791
* [TableGen] Pass PassSubtarget flag into getCode instead of storing a copy of ↵Craig Topper2016-01-143-32/+25
| | | | | | the flag in every AsmWriterOperand. NFC llvm-svn: 257743
* Remove bashism from merge.sh: POSIX sh does not have the `function`Dimitry Andric2016-01-131-1/+1
| | | | | | | reserved word, and it is even superfluous in bash, for this particular instance. llvm-svn: 257663
* Update version to 3.9.Hans Wennborg2016-01-131-2/+2
| | | | llvm-svn: 257627
* [lit] Fix handling of per test timeout when the installed psutil versionDan Liew2016-01-131-1/+8
| | | | | | | | | | is < ``2.0``. Older versions of psutil (e.g. ``1.2.1`` which is the version shipped with Ubuntu 14.04) use a different API for retrieving the child processes. To handle this try the new API first and if that fails try the old API. llvm-svn: 257616
* [TableGen] Cleanup output formatting and add llvm_unreachables to the output ↵Craig Topper2016-01-131-5/+6
| | | | | | the AsmMatcher uses when it overflows the 64-bit tables. No in tree targets use this code, but I tested it with an temporarily reduced table width. llvm-svn: 257583
* [TableGen] Replace some hardcoded assumptions that the OpcodeInfo table is ↵Craig Topper2016-01-131-8/+10
| | | | | | 64-bits for cleanliness. NFC llvm-svn: 257582
* [TableGen] Use std::remove_if instead of an n^2 loop. NFCCraig Topper2016-01-131-8/+5
| | | | llvm-svn: 257581
* [TableGen] Fix up some stale comments in the AsmMatcher. NFCCraig Topper2016-01-131-4/+2
| | | | llvm-svn: 257580
* [TableGen] Move calls to getValueAsInt out of a loop since they aren't ↵Craig Topper2016-01-131-2/+3
| | | | | | simple functions. NFC llvm-svn: 257579
* [TableGen] Allow asm writer to use up to 3 OpInfo tables instead of 2. This ↵Craig Topper2016-01-111-30/+32
| | | | | | | | allows x86 to use 56 total bits made up of a 32-bit, 16-bit, and 8-bit table. Previously we were using 64 total bits. This saves 14K from the x86 table size. And saves space on other targets as well. llvm-svn: 257315
* [TableGen] Remove unnecessary 0 terminator from an array that only existed ↵Craig Topper2016-01-111-4/+0
| | | | | | to prevent ending an array with a comma. But that's perfectly legal and not something we need to prevent. NFC llvm-svn: 257314
OpenPOWER on IntegriCloud