summaryrefslogtreecommitdiffstats
path: root/llvm/utils
Commit message (Collapse)AuthorAgeFilesLines
* test-release.sh: Add ability to do a test build using the trunk or branches.Daniel Sanders2015-07-171-3/+19
| | | | | | | | | | | | | | | | | | | | | Summary: Adds '--svn-path BRANCH' that causes the script to export the specified path from each project. Otherwise the tag specified by -release, -rc, etc. will be used. The version portion of the package name will be 'test-$path' (any forward slashes in the branch name are replaced with underscores), for example: -svn-path trunk => clang+llvm-test-trunk-mips-linux-gnu.tar.xz -svn-path branches/release_35 => clang+llvm-test-branches_release_35-mips-linux-gnu.tar.xz This is primarily useful for bringing new release packages up to standard without needing to create and maintain a tag for the purpose. Reviewers: tstellarAMD, hans Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D6563 llvm-svn: 242518
* Move most user of TargetMachine::getDataLayout to the Module oneMehdi Amini2015-07-161-4/+4
| | | | | | | | | | | | | | | | | | | | | Summary: This change is part of a series of commits dedicated to have a single DataLayout during compilation by using always the one owned by the module. This patch is quite boring overall, except for some uglyness in ASMPrinter which has a getDataLayout function but has some clients that use it without a Module (llmv-dsymutil, llvm-dwarfdump), so some methods are taking a DataLayout as parameter. Reviewers: echristo Subscribers: yaron.keren, rafael, llvm-commits, jholewinski Differential Revision: http://reviews.llvm.org/D11090 From: Mehdi Amini <mehdi.amini@apple.com> llvm-svn: 242386
* test-release.sh: Run both .o files through sed before comparing themHans Wennborg2015-07-151-3/+4
| | | | | | | | | | On some systems (e.g. Mac OS X), sed will add a newline to the end of the output if there wasn't one already. This would cause false cmp errors since the .o file from Phase 2 was passed through sed and the one from Phase 3 wasn't. Work around this by passing both through sed. llvm-svn: 242341
* Switch the release script to build with CMake by default (PR21561)Hans Wennborg2015-07-151-48/+66
| | | | | | | | | | | | | | | | | | | | It retains the possibility to use the autoconf build with a command-line option ('-use-autoconf'), and uses that by default on Darwin since compiler-rt requires it on that platform. This commit also removes the "Release-64" flavour and related logic. The script would previously do two builds unless the '-no-64bit' flag was passed, but on my machine and from those I asked this always ended up producing two 64-bit builds, causing much confusion. It also removes the -build-triple option, which caused the --build= flag to get passed to ./configure. This was presumably intended for cross-compiling, but none of the release testers use it. If someone does want to pass it, they can use '-configure-flags --build=foo' instead. Differential Revision: http://reviews.llvm.org/D10715 llvm-svn: 242331
* [TableGen] Improve decoding options for non-orthogonal instructionsPetr Pavlu2015-07-152-34/+145
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When FixedLenDecoder matches an input bitpattern of form [01]+ with an instruction bitpattern of form [01?]+ (where 0/1 are static bits and ? are mixed/variable bits) it passes the input bitpattern to a specific instruction decoder method which then makes a final decision whether the bitpattern is a valid instruction or not. This means the decoder must handle all possible values of the variable bits which sometimes leads to opcode rewrites in the decoder method when the instructions are not fully orthogonal. The patch provides a way for the decoder method to say that when it returns Fail it does not necessarily mean the bitpattern is invalid, but rather that the bitpattern is definitely not an instruction that is recognized by the decoder method. The decoder can then try to match the input bitpattern with other possible instruction bitpatterns. For example, this allows to solve a situation on AArch64 where the `MSR (immediate)` instruction has form: 1101 0101 0000 0??? 0100 ???? ???1 1111 but not all values of the ? bits are allowed. The rejected values should be handled by the `extended MSR (register)` instruction: 1101 0101 000? ???? ???? ???? ???? ???? The decoder will first try to decode an input bitpattern that matches both bitpatterns as `MSR (immediate)` but currently this puts the decoder method of `MSR (immediate)` into a situation when it must be able to decode all possible values of the ? bits, i.e. it would need to rewrite the instruction to `MSR (register)` when it is not `MSR (immediate)`. The patch allows to specify that the decoder method cannot determine if the instruction is valid for all variable values. The decoder method can simply return Fail when it knows it is definitely not `MSR (immediate)`. The decoder will then backtrack the decoding and find that it can match the input bitpattern with the more generic `MSR (register)` bitpattern too. Differential Revision: http://reviews.llvm.org/D7174 llvm-svn: 242274
* [vim] Update the syntax to mark REQUIRES lines and not talk aboutChandler Carruth2015-07-151-3/+3
| | | | | | | | | | | dejagnu. I wonder if it would be useful to handle FileCheck prefixes specially? Especially if we could get some error checking. Suggestions welcome. Patches more welcome as I have no idea what I'm doing with vim script.... llvm-svn: 242267
* [vim] Add the IR's comment prefix to the comments list. This allows vimChandler Carruth2015-07-151-0/+1
| | | | | | | | to intelligently wrap prose written in IR comment blocks. This has bothered me for roughly ever, and my fellow IRC denziens convinced me to fix it. llvm-svn: 242266
* test-release.sh: Remove the InstallDir parameter from configure_llvmCoreHans Wennborg2015-07-141-16/+5
| | | | | | After r242187, it's never set. llvm-svn: 242194
* Fix several issues with the test-release.sh scriptDan Liew2015-07-141-68/+63
| | | | | | | | | | | | | | | | | | | * Use the default install prefix (/usr/local) and use DESTDIR instead to set a temporary install location for tarballing. This is the correct way to package binary releases (otherwise the temporary install path ends up in files in the binary release). * Remove ``-disable-clang`` option. It did not work correctly (tarballing assumed phase 3 was run) and when doing a release we should always be doing a three-phased build and test. Note: Technically we should only be using DESTDIR for the third phase and use --prefix for the first and second phase because we run the built clang from phase 1 and 2 (and in general an application's behaviour may depend on the install prefix). However in the case of clang it seems to not care what the install prefix was so to simplify the script we use DESTDIR for all three stages. llvm-svn: 242187
* Fix comment typoPetr Pavlu2015-07-141-1/+1
| | | | | | Test commit access. llvm-svn: 242128
* AVX-512: Added all AVX-512 forms of Vector Convert for Float/Double/Int/Long ↵Elena Demikhovsky2015-07-131-2/+24
| | | | | | | | | | | | types. In this patch I have only encoding. Intrinsics and DAG lowering will be in the next patch. I temporary removed the old intrinsics test (just to split this patch). Half types are not covered here. Differential Revision: http://reviews.llvm.org/D11134 llvm-svn: 242023
* MC: Remove MCSubtargetInfo() default constructorDuncan P. N. Exon Smith2015-07-101-8/+7
| | | | | | | | | | | | | | | | | | | | | Force all creators of `MCSubtargetInfo` to immediately initialize it, merging the default constructor and the initializer into an initializing constructor. Besides cleaning up the code a little, this makes it clear that the initializer is never called again later. Out-of-tree backends need a trivial change: instead of calling: auto *X = new MCSubtargetInfo(); InitXYZMCSubtargetInfo(X, ...); return X; they should call: return createXYZMCSubtargetInfoImpl(...); There's no real functionality change here. llvm-svn: 241957
* Target RegisterInfo: devirtualize TargetFrameLoweringJF Bastien2015-07-101-0/+12
| | | | | | | | | | | | | Summary: The target frame lowering's concrete type is always known in RegisterInfo, yet it's only sometimes devirtualized through a static_cast. This change adds an auto-generated static function <Target>GenRegisterInfo::getFrameLowering(const MachineFunction &MF) which does this devirtualization, and uses this function in all targets which can. This change was suggested by sunfish in D11070 for WebAssembly, I figure that I may as well improve the other targets while I'm here. Subscribers: sunfish, ted, llvm-commits, jfb Differential Revision: http://reviews.llvm.org/D11093 llvm-svn: 241921
* Rename llvm.frameescape and llvm.framerecover to localescape and localrecoverReid Kleckner2015-07-071-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | Summary: Initially, these intrinsics seemed like part of a family of "frame" related intrinsics, but now I think that's more confusing than helpful. Initially, the LangRef specified that this would create a new kind of allocation that would be allocated at a fixed offset from the frame pointer (EBP/RBP). We ended up dropping that design, and leaving the stack frame layout alone. These intrinsics are really about sharing local stack allocations, not frame pointers. I intend to go further and add an `llvm.localaddress()` intrinsic that returns whatever register (EBP, ESI, ESP, RBX) is being used to address locals, which should not be confused with the frame pointer. Naming suggestions at this point are welcome, I'm happy to re-run sed. Reviewers: majnemer, nicholas Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D11011 llvm-svn: 241633
* Fix bug in test-release.sh where the script would not exit if anyDan Liew2015-07-071-1/+5
| | | | | | | | | | | | | | of the build stages that are sent through a pipe (e.g. tee) failed. This potentially allowed builds and/or tests to fail without anyone noticing. It appears that for the LLVM 3.6.[01] releases this actually happened for the Ubuntu 14.04LTS binary releases. The essence of the issue is that without ``set -o pipefail`` the following command in bash has a zero exit code. false | tee /dev/null ; exit $? llvm-svn: 241599
* Make UnitTestMain/TestMain.cpp free from llvm/Config/config.h.NAKAMURA Takumi2015-07-061-3/+2
| | | | | | llvm/Config/config.h is unavailable outside of build tree. llvm-svn: 241523
* Reverting r241058 because it's causing buildbot failures.Ranjeet Singh2015-06-301-30/+26
| | | | llvm-svn: 241061
* There are a few places where subtarget features are stillRanjeet Singh2015-06-301-26/+30
| | | | | | | | | represented by uint64_t, this patch replaces these usages with the FeatureBitset (std::bitset) type. Differential Revision: http://reviews.llvm.org/D10542 llvm-svn: 241058
* MIR Serialization: Serialize the register mask machine operands.Alex Lorenz2015-06-291-0/+22
| | | | | | | | | | | | | | | | | This commit implements serialization of the register mask machine operands. This commit serializes only the call preserved register masks that are defined by a target, it doesn't serialize arbitrary register masks. This commit also extends the TargetRegisterInfo class and TableGen so that the users of TRI can get the list of all the call preserved register masks and their names. Reviewers: Duncan P. N. Exon Smith Differential Revision: http://reviews.llvm.org/D10673 llvm-svn: 240966
* AVX-512: Added all SKX forms of GATHER instructions.Elena Demikhovsky2015-06-281-0/+6
| | | | | | | Added intrinsics. Added encoding and tests. llvm-svn: 240905
* Pass 2 more variables to lit tests.Evgeniy Stepanov2015-06-231-1/+1
| | | | | | | | Pass ADB and ADB_SERIAL environment variables to lit tests. This would allow running Android tests in compiler-rt when there is more than one device attached to the host. llvm-svn: 240459
* Revert r240271 (Fixed/added namespace ending comments using clang-tidy. NFC)Alexander Kornienko2015-06-231-1/+1
| | | | llvm-svn: 240393
* test-release.sh: Minor fixes.Hans Wennborg2015-06-221-6/+3
| | | | llvm-svn: 240334
* Avoid a Symbol -> Name -> Symbol conversion.Rafael Espindola2015-06-221-1/+2
| | | | | | | | | | | | | | Before this we were producing a TargetExternalSymbol from a MCSymbol. That meant extracting the symbol name and fetching the symbol again down the pipeline. This patch adds a DAG.getMCSymbol that lets the MCSymbol pass unchanged on the DAG. Doing so removes the need for MO_NOPREFIX and fixes the root cause of pr23900, allowing r240130 to be committed again. llvm-svn: 240300
* Fixed/added namespace ending comments using clang-tidy. NFCAlexander Kornienko2015-06-221-1/+1
| | | | | | A few more files that were fixed while preparing r240270. llvm-svn: 240271
* [CodeGen] Introduce a FAULTING_LOAD_OP pseudo-op.Sanjoy Das2015-06-151-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | Summary: This instruction encodes a loading operation that may fault, and a label to branch to if the load page-faults. The locations of potentially faulting loads and their "handler" destinations are recorded in a FaultMap section, meant to be consumed by LLVM's clients. Nothing generates FAULTING_LOAD_OP instructions yet, but they will be used in a future change. The documentation (FaultMaps.rst) needs improvement and I will update this diff with a more expanded version shortly. Depends on D10196 Reviewers: rnk, reames, AndyAyers, ab, atrick, pgavlin Reviewed By: atrick, pgavlin Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D10197 llvm-svn: 239740
* [LIT] Fix failing LIT testsEric Fiselier2015-06-134-6/+8
| | | | | | | | | | | | | | | | | | | | | | | | Summary: I spend some time trying to get the LIT test suite passing. Here are the changes that I needed to make on my machine. I made the following changes for the following reasons. 1. google-test.py: The Google test format now checks for "[ PASSED ] 1 test." to check if a test passes. 2. discovery.py: The output appears in a different order on my machine than it did in the test. 3. unittest-adaptor.py: The output appears in a different order on my machine than it did in the test. 4. The classname is now formed differently in `getJUnitXML(...)`. I'm not sure what is causing the output order to differ in discovery.py and unittest-adaptor.py. Does anybody have any thoughts? Reviewers: ddunbar, danalbert, jroelofs Reviewed By: jroelofs Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D9864 llvm-svn: 239663
* Replace string GNU Triples with llvm::Triple in MCSubtargetInfo and ↵Daniel Sanders2015-06-101-4/+5
| | | | | | | | | | | | | | | | | | create*MCSubtargetInfo(). NFC. Summary: This continues the patch series to eliminate StringRef forms of GNU triples from the internals of LLVM that began in r239036. Reviewers: rafael Reviewed By: rafael Subscribers: rafael, ted, jfb, llvm-commits, rengolin, jholewinski Differential Revision: http://reviews.llvm.org/D10311 llvm-svn: 239467
* X86-MPX: Implemented encoding for MPX instructions.Elena Demikhovsky2015-06-091-0/+3
| | | | | | Added encoding tests. llvm-svn: 239403
* [TableGen] Remove unnecessary default constructed SMLoc that just existed to ↵Craig Topper2015-06-081-5/+1
| | | | | | return. Instead just call the default constructor in the return. llvm-svn: 239277
* [TableGen] Use range-based for loop. NFCCraig Topper2015-06-081-3/+2
| | | | llvm-svn: 239276
* [TableGen] Remove unnecessary extern declaration that's already in an ↵Craig Topper2015-06-081-2/+0
| | | | | | included header file. llvm-svn: 239275
* [TableGen] Use the SMLoc header file instead of SourceMgr header file in a ↵Craig Topper2015-06-081-1/+2
| | | | | | couple places. NFC llvm-svn: 239274
* [TableGen] Rename ListInit::getSize to just 'size' to be more consistent.Craig Topper2015-06-025-27/+26
| | | | llvm-svn: 238806
* [TableGen] Use range-based for loops. NFC.Craig Topper2015-06-023-22/+18
| | | | llvm-svn: 238805
* lit: Allow configurations to restrict the set of tests to runArnold Schwaighofer2015-06-012-1/+14
| | | | | | | | | | By setting limit_to_features to a non empty list of features a configuration can restrict the set of tests to run to only include tests that require a feature in this list. rdar://21082253 llvm-svn: 238766
* Drop remaining Dragonegg support in release scriptsHans Wennborg2015-06-012-13/+1
| | | | | | | | | | r236077 and r236081 dropped Dragonegg support from the release scripts but left some pieces. The most notable change is that Dragonegg won't be tagged any more. Patch by David Wiberg <dwiberg@gmail.com>. llvm-svn: 238753
* Replace push_back(Constructor(foo)) with emplace_back(foo) for non-trivial typesBenjamin Kramer2015-05-2910-58/+41
| | | | | | | | | | | | | | | | | | | | If the type isn't trivially moveable emplace can skip a potentially expensive move. It also saves a couple of characters. Call sites were found with the ASTMatcher + some semi-automated cleanup. memberCallExpr( argumentCountIs(1), callee(methodDecl(hasName("push_back"))), on(hasType(recordDecl(has(namedDecl(hasName("emplace_back")))))), hasArgument(0, bindTemporaryExpr( hasType(recordDecl(hasNonTrivialDestructor())), has(constructExpr()))), unless(isInTemplateInstantiation())) No functional change intended. llvm-svn: 238602
* [TableGen][AsmMatcherEmitter] Only parse isolated tokens as registers.Ahmed Bougacha2015-05-291-4/+22
| | | | | | | | | | | | | | Fixes PR23455, where, when TableGen generates the matcher from the AsmString, it splits "cmp${cc}ss" into tokens, and the "ss" suffix is recognized as the SS register. I can't think of a situation where that's a feature, not a bug, hence: when a token is "isolated", i.e., it is followed and preceded by separators, it shouldn't be parsed as a register. Differential Revision: http://reviews.llvm.org/D9844 llvm-svn: 238536
* [TableGen][AsmMatcherEmitter] Factor out AsmOperand creation. NFC.Ahmed Bougacha2015-05-291-8/+15
| | | | llvm-svn: 238534
* Add support for the convergent flag at the MC and MachineInstr levels.Owen Anderson2015-05-283-31/+34
| | | | llvm-svn: 238450
* Expand the Flags field of MCInstrDesc to 64 bits, while simultaneouslyOwen Anderson2015-05-281-2/+2
| | | | | | | | | | | shrinking the Size and NumDefs fields to offset the size growth, and reordering the fields to preserve a good packing. This is necessary in the short term for adding a convergent flag, and simultaneously future-proofs us against more flags being added in the future. llvm-svn: 238445
* Add initial support for the convergent attribute.Owen Anderson2015-05-263-1/+16
| | | | llvm-svn: 238264
* AsmMatcherEmitter: Add an option to override custom converters for InstAliasTom Stellard2015-05-261-3/+12
| | | | | | | | | | | | | | | | | If there is an InstAlias defined for an instruction that had a custom converter (AsmMatchConverter), then when the alias is matched, the custom converter will be used rather than the converter generated by the InstAlias. This patch adds the UseInstAsmMatchConverter field to the InstAlias class, which allows you to override this behavior and force the converter generated by the InstAlias to be used. This is required for some future improvemnts to the R600 assembler. Differential Revision: http://reviews.llvm.org/D9083 llvm-svn: 238210
* Use std::bitset for SubtargetFeatures.Michael Kuperstein2015-05-264-46/+41
| | | | | | | | | | | | Previously, subtarget features were a bitfield with the underlying type being uint64_t. Since several targets (X86 and ARM, in particular) have hit or were very close to hitting this bound, switching the features to use a bitset. No functional change. The first several times this was committed (e.g. r229831, r233055), it caused several buildbot failures. Apparently the reason for most failures was both clang and gcc's inability to deal with large numbers (> 10K) of bitset constructor calls in tablegen-generated initializers of instruction info tables. This should now be fixed. llvm-svn: 238192
* This patch adds support for the vector quadword add/sub instructions introducedKit Barton2015-05-251-1/+3
| | | | | | | | | | | | | | | | | | | | in POWER8: vadduqm vaddeuqm vaddcuq vaddecuq vsubuqm vsubeuqm vsubcuq vsubecuq In addition to adding the instructions themselves, it also adds support for the v1i128 type for intrinsics (Intrinsics.td, Function.cpp, and IntrinsicEmitter.cpp). http://reviews.llvm.org/D9081 llvm-svn: 238144
* Improve check on git-svnrevert, better error messageRenato Golin2015-05-161-1/+6
| | | | | | | | | | | When the commit is not in the tree at all, find-rev returns 0 and prints an empty string. We need to catch that problem too, when trying to revert. Adding a list of possible problems, so that you can easily and quickly correct without having to edit the script again. llvm-svn: 237516
* [TableGen] Remove ListInit::size() in favor of getSize() which does the same ↵Craig Topper2015-05-141-2/+2
| | | | | | thing and is already used in most places. NFC. llvm-svn: 237341
* [TableGen] Replace some calls to ListInit::getSize() with ListInit::empty() ↵Craig Topper2015-05-142-3/+3
| | | | | | if it was just comparing to 0. NFC. llvm-svn: 237340
* YAML: Implement block scalar parsing.Alex Lorenz2015-05-131-0/+2
| | | | | | | | | | | | | | | | | | | | | This commit implements the parsing of YAML block scalars. Some code existed for it before, but it couldn't parse block scalars. This commit adds a new yaml node type to represent the block scalar values. This commit also deletes the 'spec-09-27' and 'spec-09-28' tests as they are identical to the test file 'spec-09-26'. This commit introduces 3 new utility functions to the YAML scanner class: `skip_s_space`, `advanceWhile` and `consumeLineBreakIfPresent`. Reviewers: Duncan P. N. Exon Smith Differential Revision: http://reviews.llvm.org/D9503 llvm-svn: 237314
OpenPOWER on IntegriCloud