summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* [Support] Add case-insensitive versions of StringSwitch members.Zachary Turner2016-10-042-1/+155
| | | | | | | | | This adds support for CaseLower, CasesLower, StartsWithLower, and EndsWithLower. Differential revision: https://reviews.llvm.org/D24686 llvm-svn: 283244
* AArch64: Macrofusion: Split features, add missing combinations.Matthias Braun2016-10-044-12/+60
| | | | | | | | | | | | | | | | AArch64InstrInfo::shouldScheduleAdjacent() determines whether two instruction can benefit from macroop fusion on apple CPUs. The list turned out to be incomplete: - the "rr" variants of the instructions were missing - even the "rs" variants can have shift value == 0 and behave like the "rr" variants This also splits the MacropFusion target feature into ArithmeticBccFusion and ArithmeticCbzFusion. Differential Revision: https://reviews.llvm.org/D25142 llvm-svn: 283243
* [sancov] documentation update after r283241Mike Aizatsky2016-10-041-1/+1
| | | | llvm-svn: 283242
* [sancov] renamed symcov-report-server to coverage-report-serverMike Aizatsky2016-10-042-2/+2
| | | | llvm-svn: 283241
* [asan] Switch to using dynamic shadow offset on iOSAnna Zaks2016-10-044-6/+44
| | | | | | | | The VM layout is not stable between iOS version releases, so switch to dynamic shadow offset. Differential Revision: https://reviews.llvm.org/D25218 llvm-svn: 283240
* [asan] LLVM: Switch to using dynamic shadow offset on iOSAnna Zaks2016-10-041-2/+3
| | | | | | | | | | The VM layout is not stable between iOS version releases, so switch to dynamic shadow offset. This is the LLVM counterpart of https://reviews.llvm.org/D25218 Differential Revision: https://reviews.llvm.org/D25219 llvm-svn: 283239
* Improvements to testing blacklistFrancis Ricci2016-10-044-41/+20
| | | | | | | | | | | | | | | | | | | Summary: This patch is necessary because individual test cases are not required to have unique names. Therefore, test cases must now be specified explicitly in the form <TestCase>.<TestMethod>. Because it works by regex matching, passing just <TestCase> will still disable an entire file. This also allows for multiple exclusion files to be specified. Reviewers: zturner, labath, jingham, tfiala Subscribers: lldb-commits, sas Differential Revision: https://reviews.llvm.org/D24988 llvm-svn: 283238
* Fix FixupEnvironment on Android after the Args refactorTamas Berghammer2016-10-041-5/+6
| | | | llvm-svn: 283237
* Don't filter diagnostics written as YAML to the output fileHal Finkel2016-10-042-1/+3
| | | | | | | | | | | | | | | The purpose of the YAML diagnostic output file is to collect information on optimizations performed, or not performed, for later processing by tools that help users (and compiler developers) understand how code was optimized. As such, the diagnostics that appear in the file should not be coupled to what a user might want to see summarized for them as the compiler runs, and in fact, because the user likely does not know what optimization diagnostics their tools might want to use, the user cannot provide a useful filter regardless. As such, we shouldn't filter the diagnostics going to the output file. Differential Revision: https://reviews.llvm.org/D25224 llvm-svn: 283236
* Test what happens when tag lookup and redeclaration lookup disagreeReid Kleckner2016-10-041-0/+9
| | | | | | | | | | | | | | | | | | | | | | Clang has a diagnostic for the what happens when an elaborated type implicitly creates a tag declaration and the initial tag lookup fails, but the redeclaration lookup succeeds and finds a non-tag type. However, it wasn't tested, and looked like dead code. After much staring, we discovered how to exercise it, and are now committing the test for posterity. In this example, the tag lookup will not find A, but then when we go to insert a declaration of A at global scope, we discover the template friend, which is not a tag type. struct C { template <typename> friend struct A; }; struct B { struct A *p; }; llvm-svn: 283235
* [CMake] Exclude intrinsics_gen from LLVM_COMMON_DEPENDS in LLVMConfig.cmakeChris Bieneman2016-10-041-0/+9
| | | | | | CMake requires that all targets expressed as dependencies exist, so we can't have intrinsics_gen in LLVM_COMMON_DEPENDS when it is written out, otherwise projects building out of tree will have CMake errors. llvm-svn: 283234
* [ScopInfo] Add -polly-unprofitable-scalar-accs option.Michael Kruse2016-10-042-1/+103
| | | | | | | | | With this option one can disable the heuristic that assumes that statements with a scalar write access cannot be profitably optimized. Such a statement instances necessarily have WAW-dependences to itself. With DeLICM scalar accesses can be changed to array accesses, which can avoid these WAW-dependence. llvm-svn: 283233
* [ScopInfo] Scalar access do not have indirect base pointers.Michael Kruse2016-10-043-5/+5
| | | | | | | | | | | | | | | | ScopArrayInfo used to determine base pointer origins by looking up whether the base pointer is a load. The "base pointer" for scalar accesses is the llvm::Value being accessed. This is only a symbolic base pointer, it represents the alloca variable (.s2a or .phiops) generated for it at code generation. This patch disables determining base pointer origin for scalars. A test case where this caused a crash will be added in the next commit. In that test SAI tried to get the origin base pointer that was only declared later, therefore not existing. This is probably only possible for scalars used in PHINode incoming blocks. llvm-svn: 283232
* Serialize remark argument as a mapping to get proper quotation for the value.Adam Nemet2016-10-043-22/+16
| | | | llvm-svn: 283231
* Allow derived classes of OptimizationRemarkAnalysis in YAMLAdam Nemet2016-10-041-0/+8
| | | | llvm-svn: 283230
* Add a comment.Rui Ueyama2016-10-041-1/+4
| | | | llvm-svn: 283229
* [Sema] Format a comment line so that it fits 80 columns. NFCAlex Lorenz2016-10-041-2/+3
| | | | llvm-svn: 283228
* [MS] Move hex long long sign compat hack to -fms-compatibilityReid Kleckner2016-10-043-12/+20
| | | | | | | | | Treating large 0x*LL literals as signed instead of unsigned is not a conforming language extension, so move it out of -fms-extensions. Came up in PR30605 llvm-svn: 283227
* [ELF] - Do not crash on MIPS if there is no object files in input.George Rimar2016-10-042-0/+7
| | | | | | | | | | | If we have input without object files, for example if we have only .so code crashes in checkFlags(), getPicFlags(), getArchFlags() functions. Patch fixes the issue. Differential revision: https://reviews.llvm.org/D25237 llvm-svn: 283226
* [SLPVectorizer] Add a test with non-vectorizable IR.Alexey Bataev2016-10-041-0/+290
| | | | llvm-svn: 283225
* Fix some false-positives with cppcoreguidelines-pro-type-member-init. Handle ↵Aaron Ballman2016-10-044-35/+113
| | | | | | | | | | classes with default constructors that are defaulted or are not present in the AST. Classes with virtual methods or virtual bases are not trivially default constructible, so their members and bases need to be initialized. Patch by Malcolm Parsons. llvm-svn: 283224
* [OpenMP] fix segfault when a variable referenced in reduction clause is a ↵David Sheinkman2016-10-0418-1/+112
| | | | | | reference parameter\nDifferential Revision: http://reviews.llvm.org/D24524 llvm-svn: 283223
* Mark #2759 as ready and #2755 as completeMarshall Clow2016-10-041-5/+5
| | | | llvm-svn: 283222
* [ScopInfo] Make simplifySCoP() public. NFC.Michael Kruse2016-10-041-3/+7
| | | | | | | | This function may need to be called after the scop construction. The upcoming DeLICM will use this to cleanup statement that all write accesses have been removed from. llvm-svn: 283221
* Mark #2598 as readyMarshall Clow2016-10-041-2/+2
| | | | llvm-svn: 283220
* [RS4GC] Handle ShuffleVector instruction in findBasePointerAnna Thomas2016-10-042-10/+111
| | | | | | | | | | | | | | | Summary: This patch modifies the findBasePointer to handle the shufflevector instruction. Tests run: RS4GC tests, local downstream tests. Reviewers: reames, sanjoy Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D25197 llvm-svn: 283219
* Mark #2739 as readyMarshall Clow2016-10-041-3/+3
| | | | llvm-svn: 283218
* [ThinLTO] Spell `llvm-ar` correctly.Davide Italiano2016-10-041-1/+1
| | | | llvm-svn: 283217
* Remove duplicated typedef. NFC.Rafael Espindola2016-10-041-5/+4
| | | | llvm-svn: 283216
* Fix IntegerType::MAX_INT_BITS valueAndrey Bokhanko2016-10-044-2/+14
| | | | | | | | | IntegerType::MAX_INT_BITS is apparently not in sync with Type::SubclassData size. This patch fixes this. Differential Revision: https://reviews.llvm.org/D24814 llvm-svn: 283215
* [ELF] Don't discard excluded section if -r is usedEugene Leviant2016-10-042-1/+8
| | | | | | | This conforms to GNU ld/gold behavior and fixes crash in case excluded section also has associated relocation section llvm-svn: 283214
* [ELF] - Removed "invalid-" prefix from testcase. NFC.George Rimar2016-10-042-2/+2
| | | | llvm-svn: 283213
* [Power9] Exploit D-Form VSX Scalar memory ops that target full VSX register setNemanja Ivanovic2016-10-0417-39/+340
| | | | | | | | | | | | | This patch corresponds to review: The newly added VSX D-Form (register + offset) memory ops target the upper half of the VSX register set. The existing ones target the lower half. In order to unify these and have the ability to target all the VSX registers using D-Form operations, this patch defines Pseudo-ops for the loads/stores which are expanded post-RA. The expansion then choses the correct opcode based on the register that was allocated for the operation. llvm-svn: 283212
* Fix a documentation warning.Haojian Wu2016-10-041-1/+1
| | | | llvm-svn: 283211
* [change-namespace] Fix a misplaced case when there is no trailing newline ↵Haojian Wu2016-10-042-2/+24
| | | | | | | | | | | | character at the end of the file. Reviewers: ioeric Subscribers: cfe-commits Differential Revision: https://reviews.llvm.org/D25226 llvm-svn: 283210
* [mips][fastisel] Consider soft-float an unsupported floating point modeSimon Dardis2016-10-042-2/+17
| | | | | | | | | | | Treat soft-float as unsupported for fast-isel. Additionally, ensure we check that lowering f32 arguments also considers the case of soft-float mode. Reviewers: ehostunreach, vkalintiris, zoran.jovanovic Differential Review: https://reviews.llvm.org/D24505 llvm-svn: 283209
* [ELF] - Do not hang if broken object has option descriptor in .MIPS.options ↵George Rimar2016-10-043-0/+7
| | | | | | | | | | | with size of zero. Previously lld would hang in infinite loop in this case, patch fixes the issue. Object was found during AFL run. Differential revision: https://reviews.llvm.org/D25229 llvm-svn: 283208
* Do not find friend function definitions inside non-instantiated class.Serge Pavlov2016-10-046-7/+249
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously if a file-level function was defined inside befriending template class, it always was treated as defined. For instance, the code like: ``` int func(int x); template<typename T> class C1 { friend int func(int x) { return x; } }; template<typename T> class C2 { friend int func(int x) { return x; } }; ``` could not be compiled due to function redefinition, although not of the templates is instantiated. Moreover, the body of friend function can contain use of template parameters, attempt to get definition of such function outside any instantiation causes compiler abnormal termination. Other compilers (gcc, icc) follow viewpoint that the body of the function defined in friend declaration becomes available when corresponding class is instantiated. This patch implements this viewpoint in clang. Definitions introduced by friend declarations in template classes are not added to the redeclaration chain of corresponding function. Only when the template is instantiated, instantiation of the function definition is placed to the chain. The fix was made in collaboration with Richard Smith. This change fixes PR8035, PR17923, PR22307 and PR25848. Differential Revision: http://reviews.llvm.org/D16989 llvm-svn: 283207
* Minor cleanups in clang-format.el.Manuel Klimek2016-10-041-41/+48
| | | | | | | | | | | | | | | | | | - Enable lexical binding - Formatting - Enable file name completion for the clang-format-executable variable - Add a missing docstring - When available, use bufferpos-to-filepos and filepos-to-bufferpos. These functions given more precise mapping than byte-to-position and position-bytes. - Rename arguments of clang-format-region to match the docstring - Instead of binding local variables to nil and then assigning them, bind them directly to their values - Make use of the fact that insert-file-contents returns the number of characters it inserted - Use cl-destructuring-bind to make the code a bit shorter - Use standard iteration (dolist) instead of mapc with a lambda, which is more common and shorter - Remove a message that was most likely only present for debugging purposes Patch by Philipp Stephani. llvm-svn: 283206
* Fix windows builtbot error.Haojian Wu2016-10-041-0/+2
| | | | llvm-svn: 283205
* [Object/ELF] - Do not crash on invalid sh_offset value of REL[A] section.George Rimar2016-10-044-0/+10
| | | | | | | | | Previously code would access invalid memory and may crash, patch fixes the issue. Differential revision: https://reviews.llvm.org/D25187 llvm-svn: 283204
* [SelectionDAG] Fix calling convention in expansion of ?MULO.whitequark2016-10-041-2/+12
| | | | | | | | | | | | | | | | | | | | | The SMULO/UMULO DAG nodes, when not directly supported by the target, expand to a multiplication twice as wide. In case that the resulting type is not legal, an __mul?i3 intrinsic is used. Since the type is not legal, the legalizer cannot directly call the intrinsic with the wide arguments; instead, it "pre-lowers" them by splitting them in halves. The "pre-lowering" code in essence made assumptions about the calling convention, specifically that i(N*2) values will be split into two iN values and passed in consecutive registers in little-endian order. This, naturally, breaks on a big-endian system, such as our OR1K out-of-tree backend. Thanks to James Miller <james@aatch.net> for help in debugging. Differential Revision: https://reviews.llvm.org/D25223 llvm-svn: 283203
* [clang-move] Make it support both relative and absolute file path arguments.Haojian Wu2016-10-049-40/+208
| | | | | | | | | | Reviewers: ioeric Subscribers: beanz, mgorny, cfe-commits Differential Revision: https://reviews.llvm.org/D24922 llvm-svn: 283202
* [ELF] - Do not crash on invalid symbol index.George Rimar2016-10-043-0/+12
| | | | | | | | | | | | | | Relative to PR30540. If .symtab has invalid type in elf, no bodies are created and any relocation that tries to access them will fail. The same can happen if symbol index is just incorrect. This was revealed by "id_000005,sig_11,src_000000,op_flip2,pos_420" Differential revision: https://reviews.llvm.org/D25025 llvm-svn: 283201
* [ELF] Set max page size to 64K for AArch64Eugene Leviant2016-10-0422-315/+314
| | | | | | Differential revision: https://reviews.llvm.org/D25079 llvm-svn: 283200
* Revert "[XRay] Check in Clang whether XRay supports the target when ↵Dean Michael Berris2016-10-042-17/+1
| | | | | | | | -fxray-instrument is passed" This reverts 283193 -- broke the build. llvm-svn: 283199
* [ELF] - Do not crash if symbol type set to TLS when there is no tls sections.George Rimar2016-10-043-1/+10
| | | | | | | | | | | | id_000021,sig_11,src_000002,op_flip1,pos_92 from PR30540 does not have TLS sections, but type of one of the symbol is broken and set to STT_TLS, what resulted in a crash. Patch fixes crash. DIfferential revision: https://reviews.llvm.org/D25083 llvm-svn: 283198
* [ELF] - Do not crash if common symbol has alignment 0.George Rimar2016-10-043-0/+9
| | | | | | | | | Testcase contains a common symbol with zero alignment, previously lld would crash, patch fixes that. Differential revision: https://reviews.llvm.org/D25085 llvm-svn: 283197
* [Object/ELF] - Avoid possible crash in getExtendedSymbolTableIndex().George Rimar2016-10-043-1/+6
| | | | | | | | | | When using broken input object found using AFL, getExtendedSymbolTableIndex() crashed because ShndxTable was empty as object does not contain SHT_SYMTAB_SHNDX section. Differential revision: https://reviews.llvm.org/D25189 llvm-svn: 283196
* Revert r283106, "Wdocumentation fix"NAKAMURA Takumi2016-10-041-1/+1
| | | | | | It should depend on r283094 and r283182. llvm-svn: 283195
OpenPOWER on IntegriCloud