- Aug 02, 2016
-
-
David Callahan authored
llvm-svn: 277454
-
Sam Parker authored
Added (sra (shl x, 16), 16) to the sext_16_node PatLeaf for ARM to simplify some pattern matching. This has allowed several patterns for smul* and smla* to be removed as well as making it easier to add the matching for the corresponding instructions for Thumb2 targets. Also added two Pat classes that are predicated on Thumb2 with the hasDSP flag and UseMulOps flags. Updated the smul codegen test with the wider range of patterns plus the ThumbV6 and ThumbV6T2 targets. Differential Revision: https://reviews.llvm.org/D22908 llvm-svn: 277450
-
NAKAMURA Takumi authored
HexagonVectorPrint.cpp: Fix r277370. Don't use getInstrVecReg() in the expression of assert(). It has side effects. llvm-svn: 277448
-
Ahmed Bougacha authored
They don't have types and should be using register classes. llvm-svn: 277447
-
Ahmed Bougacha authored
They don't have types and should be legal. llvm-svn: 277446
-
Ahmed Bougacha authored
llvm-svn: 277445
-
Simon Dardis authored
These changes update the schedule model for the P5600 and includes the rest of the MSA and MIPS32R5 instruction sets. Reviewers: dsanders, vkalintris Differential Revision: https://reviews.llvm.org/D21835 llvm-svn: 277441
-
Bernard Ogden authored
Summary: Commit 276701 requires that targets have the DSP extensions to use certain saturating instructions. This requires some corrections. For ARM ISA the instructions in question are available in all v6* architectures. For Thumb2, the instructions in question are available from v6T2. SSAT and USAT are part of the base architecture while SSAT16 and USAT16 require the DSP extensions. Reviewers: rengolin Subscribers: aemerson, rengolin, samparker, llvm-commits Differential Revision: https://reviews.llvm.org/D23010 llvm-svn: 277439
-
Benjamin Kramer authored
No functionality change intended. llvm-svn: 277436
-
Igor Breger authored
Differential Revision: http://reviews.llvm.org/D23055 llvm-svn: 277435
-
Matt Arsenault authored
llvm-svn: 277434
-
Matt Arsenault authored
llvm-svn: 277431
-
Matt Arsenault authored
Move some logic into TII. llvm-svn: 277430
-
Matt Arsenault authored
The branch relaxation pass has the worst test coverage of any pass in AArch64. Add a few tests that hit some large pieces of code in the pass. llvm-svn: 277428
-
Matt Arsenault authored
Not all blocks have terminators. I'm not sure how this wasn't crashing before. llvm-svn: 277427
-
Craig Topper authored
[AVX-512] Mark VADDPS/PD and VMULPS/PD as commutable. This necessitated adding itineraries to all of the instructions that use the avx512_fp_binop_p class. llvm-svn: 277422
-
Craig Topper authored
[AVX-512] Use SSE_MUL_ITINS_S/SSE_DIV_ITINS_S for the scalar FMUL/FDIV instructions to match SSE/AVX. llvm-svn: 277421
-
Chandler Carruth authored
llvm-svn: 277417
-
Craig Topper authored
llvm-svn: 277416
-
Junmo Park authored
llvm-svn: 277415
-
Sanjoy Das authored
As suggest via post-commit review. llvm-svn: 277414
-
Sanjoy Das authored
This should have been a part of rL277085, but I hadn't considered this case. llvm-svn: 277413
-
Bruno Cardoso Lopes authored
Revert r277408 "Fix test from rL277407." Revert r277407 "[MC] Fix handling of end-of-line preprocessor comments" This is currently breaking: http://lab.llvm.org:8080/green/job/clang-stage1-configure-RA_check/20731 llvm-svn: 277412
-
Sean Silva authored
Added ability to estimate the entry count of the extracted function and the branch probabilities of the exit branches. Patch by River Riddle! Differential Revision: https://reviews.llvm.org/D22744 llvm-svn: 277411
-
Sanjoy Das authored
Summary: This commit changes the Verifier class to accept a Module via the constructor to make it obvious that a specific instance of the class is only intended to work with a specific module. The `updateModule` setter (despite being private) was making this fact less transparent. There are fields in the `Verifier` class like `DeoptimizeDeclarations` and `GlobalValueVisited` which are module specific, so a given Verifier instance will not in fact work across multiple modules today. This change just makes that more obvious. The motivation is to make it easy to get to the datalayout of the module unambiguously. That is required to verify that `inttoptr` and `ptrtoint` constant expressions are well typed in the face of non-integral pointer types. Reviewers: dexonsmith, bkramer, majnemer, chandlerc Subscribers: mehdi_amini, mcrosier, llvm-commits Differential Revision: https://reviews.llvm.org/D23040 llvm-svn: 277409
-
Nirav Dave authored
llvm-svn: 277408
-
Nirav Dave authored
Summary: When parsing assembly where the line comment syntax is not hash, the lexer cannot distinguish between hash's that start a hash line comment and one that is part of an assembly statement and must be distinguished during parsing. Previously, this was incompletely handled by not checking for EndOfStatement at the end of statements and interpreting hash prefixed statements as comments. Change EndOfStatement Parsing to check for Hash comments and reintroduce Hash statement parsing to catch previously handled cases. Reviewers: rnk, majnemer Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D23017 llvm-svn: 277407
-
Hans Wennborg authored
This caused PR28805. Adding a regression test. llvm-svn: 277402
-
Tim Shen authored
[ADT] NFC: Generalize GraphTraits requirement of "NodeType *" in interfaces to "NodeRef", and migrate SCCIterator.h to use NodeRef Summary: By generalize the interface, users are able to inject more flexible Node token into the algorithm, for example, a pair of vector<Node>* and index integer. Currently I only migrated SCCIterator to use NodeRef, but more is coming. It's a NFC. Reviewers: dblaikie, chandlerc Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D22937 llvm-svn: 277399
-
Derek Schuff authored
Summary: This patch implements CFI for WebAssembly. It modifies the LowerTypeTest pass to pre-assign table indexes to functions that are called indirectly, and lowers type checks to test against the appropriate table indexes. It also modifies the WebAssembly backend to support a special ".indidx" assembly directive that propagates the table index assignments out to the linker. Patch by Dominic Chen Differential Revision: https://reviews.llvm.org/D21768 llvm-svn: 277398
-
Lang Hames authored
Common symbol support in ORC was broken in r270716 when the symbol resolution rules in RuntimeDyld were changed. With the switch to lazily materialized symbols in r277386, common symbols can be supported by having RuntimeDyld::emitCommonSymbols search for (but not materialize!) definitions elsewhere in the logical dylib. This patch adds the 'Common' flag to JITSymbolFlags, and the necessary check to RuntimeDyld::emitCommonSymbols. llvm-svn: 277397
-
- Aug 01, 2016
-
-
David Blaikie authored
llvm-svn: 277394
-
Michael Kuperstein authored
Differential Revision: https://reviews.llvm.org/D23033 llvm-svn: 277393
-
Derek Schuff authored
Summary: This patch includes asm.js-style exception handling support for WebAssembly. The WebAssembly MVP does not have any support for unwinding or non-local control flow. In order to support C++ exceptions, emscripten currently uses JavaScript exceptions along with some support code (written in JavaScript) that is bundled by emscripten with the generated code. This scheme lowers exception-related instructions for wasm such that wasm modules can be compatible with emscripten's existing scheme and share the support code. Patch by Heejin Ahn Differential Revision: https://reviews.llvm.org/D22958 llvm-svn: 277391
-
Sumanth Gundapaneni authored
This patch has the following changes The CMake variable LLVM_CCACHE_BUILD is set to OFF by default. Set this to ON for a ccache enabled build CCACHE_CPP2 is required to compile the source file directly instead of compiling the preprocessed file. This will help WERROR is turned ON for a host clang compiler The below two options makes more sense in the context of a buildbot CCACHE_HASHDIR is required to maintain the separate cached data across builders. This will also help the debuggers to point to the correct source location CCACHE_SIZE is important in the perspective of buildbot to increase the limit on the amount of data to hold in cache for faster compilation CCACHE_DIR is used to save the cached data to a specific directory. llvm-svn: 277389
-
Zachary Turner authored
The FPM is split at regular intervals across the MSF file, as the MS code suggests. It turns out that the value of the interval is precisely the block size. If the block size is 4096, then there are two Fpm pages every 4096 blocks. So here we teach the PDBFile class to parse a split FPM, and also add more options when dumping the FPM to display some additional information such as orphaned pages (pages which the FPM says are allocated, but which nothing appears to use), use after free pages (pages which the FPM says are not allocated, but which are referenced by a stream), and multiple use pages (pages which the FPM says are allocated but are used more than once). Reviewed By: ruiu Differential Revision: https://reviews.llvm.org/D23022 llvm-svn: 277388
-
Lang Hames authored
This patch replaces RuntimeDyld::SymbolInfo with JITSymbol: A symbol class that is capable of lazy materialization (i.e. the symbol definition needn't be emitted until the address is requested). This can be used to support common and weak symbols in the JIT (though this is not implemented in this patch). For consistency, RuntimeDyld::SymbolResolver is renamed to JITSymbolResolver. For space efficiency a new class, JITEvaluatedSymbol, is introduced that behaves like the old RuntimeDyld::SymbolInfo - i.e. it is just a pair of an address and symbol flags. Instances of JITEvaluatedSymbol can be used in symbol-tables to avoid paying the space cost of the materializer. llvm-svn: 277386
-
Krzysztof Parzyszek authored
llvm-svn: 277383
-
Xinliang David Li authored
Differential Revision: http://reviews.llvm.org/D22995 llvm-svn: 277379
-
Matthew Simpson authored
llvm-svn: 277376
-