summaryrefslogtreecommitdiffstats
path: root/llvm/utils
Commit message (Collapse)AuthorAgeFilesLines
* Delete utils/FileUpdate.Rafael Espindola2014-06-234-115/+2
| | | | | | It is unused and it looks like it was never used. llvm-svn: 211508
* Remove bogus configure checkDavid Greene2014-06-191-4/+0
| | | | | | | Configure creates makefiles, so it doesn't make sense to check for them to see if we can configure. llvm-svn: 211301
* Add option to keep flavor out of the install directoryDavid Greene2014-06-191-1/+5
| | | | | | | | Sometimes we want to install things in "standard" locations and the flavor directories interfere with that. Add an option to keep them out of the install path. llvm-svn: 211300
* Turn of -Werror by defaultDavid Greene2014-06-191-3/+7
| | | | | | Don't build with -Werror unless asked to. llvm-svn: 211299
* Remove OwningPtr.h and associated testsAlp Toker2014-06-191-8/+0
| | | | | | llvm::OwningPtr is superseded by std::unique_ptr. llvm-svn: 211259
* Replace some assert(0)'s with llvm_unreachable.Craig Topper2014-06-181-1/+1
| | | | llvm-svn: 211141
* lit: simplify population of the actual_inputs arrayHans Wennborg2014-06-171-3/+3
| | | | | | | Add all inputs to the array, except those starting with @, which are treated as response files and expanded. llvm-svn: 211119
* Move SetTheory from utils/TableGen into lib/TableGen so Clang can use it.James Molloy2014-06-176-469/+3
| | | | llvm-svn: 211100
* Revert "lit: warn when passed invalid pathname" (r210597)Hans Wennborg2014-06-161-5/+3
| | | | | | | | | It was pointed out that this breaks the "virtual test discovery" mechanism, which allows for narming tests in the test exec root. Reverting until I can figure out how to fix this. llvm-svn: 211048
* Remove broken include.Rafael Espindola2014-06-131-1/+0
| | | | | | Looks like I got some git merge wrong. llvm-svn: 210911
* Fix KillTheDoctor after r210725.Rafael Espindola2014-06-131-2/+4
| | | | | | | We don't map these windows errors to generic ones since errc::timed_out is not defined on mingw. Just use the raw windows error value. llvm-svn: 210910
* [Win32] Let utils/not aware of abort(), aka llvm_unreachable(), in msvcrt.NAKAMURA Takumi2014-06-131-0/+7
| | | | | | | It has exit code as 3. abort(), aka unreachable, may be handled as crash. FIXME: Could we move this into Win32/Program.inc? llvm-svn: 210895
* Remove the last uses of 'using std::error_code'Rafael Espindola2014-06-132-7/+3
| | | | | | This finishes the transition to std::error_code. llvm-svn: 210877
* Fix the build of KillTheDoctor.Rafael Espindola2014-06-121-9/+10
| | | | llvm-svn: 210843
* Don't use 'using std::error_code' in include/llvm.Rafael Espindola2014-06-122-0/+2
| | | | | | This should make sure that most new uses use the std prefix. llvm-svn: 210835
* Remove system_error.h.Rafael Espindola2014-06-124-5/+5
| | | | | | | This is a minimal change to remove the header. I will remove the occurrences of "using std::error_code" in a followup patch. llvm-svn: 210803
* Use std::error_code instead of llvm::error_code.Rafael Espindola2014-06-111-4/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The idea of this patch is to turn llvm/Support/system_error.h into a transitional header that just brings in the erorr_code api to the llvm namespace. I will remove it shortly afterwards. The cases where the general idea needed some tweaking: * std::errc is a namespace in msvc, so we cannot use "using std::errc". I could add an #ifdef, but there were not that many uses, so I just added std:: to them in this patch. * Template specialization had to be moved to the std namespace in this patch set already. * The msvc implementation of default_error_condition doesn't seem to provide the same transformations as we need. Not too surprising since the standard doesn't actually say what "equivalent" means. I fixed the problem by keeping our old mapping and using it at error_code construction time. Despite these shortcomings I think this is still a good thing. Some reasons: * The different implementations of system_error might improve over time. * It removes 925 lines of code from llvm already. * It removes 6313 bytes from the text segment of the clang binary when it is built with gcc and 2816 bytes when building with clang and libstdc++. llvm-svn: 210687
* Remove windows_error.Rafael Espindola2014-06-111-1/+5
| | | | | | | | | | MSVC doesn't seem to provide any is_error_code_enum enumeration for the windows errors. Fortunately very few places in llvm have to handle raw windows errors, so we can just construct the corresponding error_code directly. llvm-svn: 210631
* lit: warn when passed invalid pathnameHans Wennborg2014-06-101-3/+5
| | | | | | | | | | | | | | | It would previously say things like warning: input 'test/Frontend/foo.c' contained no tests and have the user pull their hair trying to figure out what's wrong with that file. This patch changes the message to the much clearer: warning: no such file or directory: 'test/Frontend/foo.c' Differential Revision: http://reviews.llvm.org/D4097 llvm-svn: 210597
* Add detection of OS X relocatable SDK to compiler-rt as a lit.util functionAlexander Potapenko2014-06-101-0/+17
| | | | | | | | | | | | Clang's lit cfg already detects the currently selected SDK via "xcrun --show-sdk-path". The same thing should be done for compiler-rt tests, to make them work on recent OS X versions. Instead of duplicating the detection code, this patch extracts the detection function into a lit.util method. Patch by Kuba Brecka (kuba.brecka@gmail.com), reviewed at http://reviews.llvm.org/D4072 llvm-svn: 210534
* Condition codes AL and NV are invalid in the aliases that useArtyom Skrobov2014-06-101-3/+46
| | | | | | | | | | | | | | inverted condition codes (CINC, CINV, CNEG, CSET, and CSETM). Matching aliases based on "immediate classes", when disassembling, wasn't previously supported, hence adding MCOperandPredicate into class Operand, and implementing the support for it in AsmWriterEmitter. The parsing for those aliases was already custom, so just adding the missing condition into AArch64AsmParser::parseCondCode. llvm-svn: 210528
* Refactoring in AsmWriterEmitter::EmitPrintAliasInstruction()Artyom Skrobov2014-06-101-11/+6
| | | | llvm-svn: 210527
* [C++11] Use 'nullptr'.Craig Topper2014-06-083-4/+5
| | | | llvm-svn: 210442
* AsmMatchers: Use unique_ptr to manage ownership of MCParsedAsmOperandDavid Blaikie2014-06-081-24/+23
| | | | | | | | | | | | I saw at least a memory leak or two from inspection (on probably untested error paths) and r206991, which was the original inspiration for this change. I ran this idea by Jim Grosbach a few weeks ago & he was OK with it. Since it's a basically mechanical patch that seemed sufficient - usual post-commit review, revert, etc, as needed. llvm-svn: 210427
* really fix the windows build.Rafael Espindola2014-05-311-2/+2
| | | | llvm-svn: 209964
* utils: Teach lldbDataFormatters to load automaticallyJustin Bogner2014-05-281-4/+12
| | | | | | | Add an __lldb_init_module function so that importing the lldbDataFormatters script automatically adds the formatters. llvm-svn: 209712
* Teach the table generated emitPseudoExpansionLowering function to not emit a ↵Aaron Ballman2014-05-231-61/+65
| | | | | | switch statement containing only a default statement (and no cases). Updated some of the code to use range-based for loops as well. No functional changes. llvm-svn: 209521
* ARM64: separate load/store operands to simplify assemblerTim Northover2014-05-221-3/+3
| | | | | | | | | | | | | | | | | | | This changes ARM64 to use separate operands for each component of an address, and look for separate '[', '$Rn, ..., ']' tokens when parsing. This allows us to do away with quite a bit of special C++ code to handle monolithic "addressing modes" in the MC components. The more incremental matching of the assembler operands also allows for better diagnostics when LLVM is presented with invalid input. Most of the complexity here is with the register-offset instructions, which were extremely dodgy beforehand: even when the instruction used wM, LLVM's model had xM as an operand. We papered over this discrepancy before, but that approach doesn't work now so I split them into separate X and W variants. llvm-svn: 209425
* [asm matcher] Fix incorrect assertion when there are exactly 32 ↵Daniel Sanders2014-05-211-13/+27
| | | | | | | | | | | | | | | | | | | | | | | | | | SubtargetFeatures Summary: The minimal type needs to hold a value of '1ULL << 31' but getMinimalTypeForRange() is called with a value of '1ULL << 32'. This patch will also reduce the size of the matcher table when there are 8 or 16 SubtargetFeatures. Also added a dump of the SubtargetFeatures to the -debug output and corrected getMinimalTypeInRange() to consider 0xffffffffull to be a 32-bit value. The testcase is that no existing code is broken and that LLVM still successfully compiles after adding MIPS64r6 CodeGen support. Reviewers: rafael Reviewed By: rafael Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D3787 llvm-svn: 209288
* [modules] Add module maps for LLVM. These are not quite ready for prime-timeRichard Smith2014-05-211-0/+4
| | | | | | | yet, but only a few more Clang patches need to land. (I have 'ninja check' passing locally.) llvm-svn: 209269
* Clean up language and grammar.Eric Christopher2014-05-201-2/+2
| | | | | | | Based on a patch by jfcaron3@gmail.com! PR19806 llvm-svn: 209216
* TableGen: permit non-leaf ComplexPattern usesTim Northover2014-05-203-56/+165
| | | | | | | | | | | | | | | | | | This allows the results of a ComplexPattern check to be distributed to separate named Operands, instead of the current system where all results must apply (and match perfectly) with a single Operand. For example, if "some_addrmode" is a ComplexPattern producing two results, you can write: def : Pat<(load (some_addrmode GPR64:$base, imm:$offset)), (INST GPR64:$base, imm:$offset)>; This should allow neater instruction definitions in TableGen that don't put all possible aspects of addressing into a single operand, but are still usable with relatively simple C++ CodeGen idioms. llvm-svn: 209206
* TableGen: convert InstAlias's Emit bit to an int.Tim Northover2014-05-201-13/+31
| | | | | | | | | | | | | When multiple aliases overlap, the correct string to print can often be determined purely by considering the InstAlias declarations in some particular order. This allows the user to specify that order manually when desired, without resorting to hacking around with the default lexicographical order on Record instantiation, which is error-prone and ugly. I was also mistaken about "add w2, w3, w4" being the same as "add w2, w3, w4, uxtw". That's only true if Rn is the stack pointer. llvm-svn: 209199
* Fix typos.Eric Christopher2014-05-191-2/+1
| | | | llvm-svn: 209164
* TableGen: fix operand counting for aliasesTim Northover2014-05-161-32/+7
| | | | | | | | | | | | | | | | | | | | | TableGen has a fairly dubious heuristic to decide whether an alias should be printed: does the alias have lest operands than the real instruction. This is bad enough (particularly with no way to override it), but it should at least be calculated consistently for both strings. This patch implements that logic: first get the *correct* string for the variant, in the same way as the Matcher, without guessing; then count the number of whitespace chars. There are basically 4 changes this brings about after the previous commits; all of these appear to be good, so I have changed the tests: + ARM64: we print "neg X, Y" instead of "sub X, xzr, Y". + ARM64: we skip implicit "uxtx" and "uxtw" modifiers. + Sparc: we print "mov A, B" instead of "or %g0, A, B". + Sparc: we print "fcmpX A, B" instead of "fcmpX %fcc0, A, B" llvm-svn: 208969
* TableGen: use correct MIOperand when printing aliasesTim Northover2014-05-153-9/+36
| | | | | | | | | | | | | | Previously, TableGen assumed that every aliased operand consumed precisely 1 MachineInstr slot (this was reasonable because until a couple of days ago, nothing more complicated was eligible for printing). This allows a couple more ARM64 aliases to print so we can remove the special code. On the X86 side, I've gone for explicit AT&T size specifiers as the default, so turned off a few of the aliases that would have just started printing. llvm-svn: 208880
* TableGen/ARM64: print aliases even if they have syntax variants.Tim Northover2014-05-154-35/+54
| | | | | | | To get at least one use of the change (and some actual tests) in with its commit, I've enabled the AArch64 & ARM64 NEON mov aliases. llvm-svn: 208867
* Fix typosAlp Toker2014-05-151-1/+1
| | | | llvm-svn: 208839
* Teach the table generator to not generate switch statements containing only ↵Aaron Ballman2014-05-131-12/+15
| | | | | | | | a default label with no cases. This solves some warnings with MSVC. No functional changes intended. llvm-svn: 208694
* TableGen: strengthen assertTim Northover2014-05-131-1/+1
| | | | llvm-svn: 208679
* Fix gcc -Wparentheses warning.Jay Foad2014-05-131-1/+2
| | | | llvm-svn: 208675
* TableGen: use PrintMethods to print more aliasesTim Northover2014-05-121-18/+79
| | | | llvm-svn: 208607
* Move late partial-unrolling thresholds into the processor definitionsHal Finkel2014-05-081-0/+1
| | | | | | | | | | | | | | | | | | | | | | The old method used by X86TTI to determine partial-unrolling thresholds was messy (because it worked by testing target features), and also would not correctly identify the target CPU if certain target features were disabled. After some discussions on IRC with Chandler et al., it was decided that the processor scheduling models were the right containers for this information (because it is often tied to special uop dispatch-buffer sizes). This does represent a small functionality change: - For generic x86-64 (which uses the SB model and, thus, will get some unrolling). - For AMD cores (because they still currently use the SB scheduling model) - For Haswell (based on benchmarking by Louis Gerbarg, it was decided to bump the default threshold to 50; we're working on a test case for this). Otherwise, nothing has changed for any other targets. The logic, however, has been moved into BasicTTI, so other targets may now also opt-in to this functionality simply by setting LoopMicroOpBufferSize in their processor model definitions. llvm-svn: 208289
* Debug.h already includes raw_ostream.h, no need to include it again.Eric Christopher2014-05-071-1/+0
| | | | llvm-svn: 208235
* [CMake] Add build rules for llvm-PerfectShuffle utilityAlexey Samsonov2014-05-071-0/+3
| | | | llvm-svn: 208225
* ArrayRef-ize the Feature and Processor tables for SubtargetFeatures.Eric Christopher2014-05-061-12/+12
| | | | | | | | This removes arguments passed everywhere and allows the use of standard iteration over lists. Should be no functional change. llvm-svn: 208127
* AArch64/ARM64: implement diagnosis of unpredictable loads & storesTim Northover2014-05-061-4/+7
| | | | llvm-svn: 208091
* [C++11] Use 'nullptr' in tablegen output files.Craig Topper2014-04-303-11/+11
| | | | llvm-svn: 207611
* raw_ostream: Forward declare OpenFlags and include FileSystem.h only where ↵Benjamin Kramer2014-04-292-0/+2
| | | | | | necessary. llvm-svn: 207593
* llvm-build: Get rid of 'import *'Anders Waldenborg2014-04-232-2/+2
| | | | | | | | This allows pyflakes catching more errors in the script. Differential Revision: http://reviews.llvm.org/D3334 llvm-svn: 207012
OpenPOWER on IntegriCloud