summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* Specify triple for xor-icmp.ll .Amaury Sechet2017-06-021-3/+2
| | | | llvm-svn: 304526
* Regenerate expectations for xor-icmp.ll . NFCAmaury Sechet2017-06-021-24/+49
| | | | llvm-svn: 304525
* Remove file that I forgot to remove as part of rL304523Roger Ferrer Ibanez2017-06-021-20/+0
| | | | llvm-svn: 304524
* Mangle __unaligned in Itanium ABIRoger Ferrer Ibanez2017-06-024-6/+79
| | | | | | | | | | | | | | | | | | | __unaligned is not currently mangled in any way in the Itanium ABI. This causes failures when using -fms-extensions and C++ in targets using Itanium ABI. As suggested by @rsmith the simplest thing to do here is actually mangle the qualifier as a vendor extension. This patch also removes the change done in D31976 and updates its test to the new reality. This fixes https://bugs.llvm.org/show_bug.cgi?id=33080 https://bugs.llvm.org/show_bug.cgi?id=33178 Differential Revision: https://reviews.llvm.org/D33398 llvm-svn: 304523
* [SelectionDAG] Get rid of recursion in findNonImmUseMax Kazantsev2017-06-021-20/+26
| | | | | | | | | | | | The recursive implementation of findNonImmUse may overflow stack on extremely long use chains. This patch replaces it with an equivalent iterative implementation. Reviewed By: bogner Differential Revision: https://reviews.llvm.org/D33775 llvm-svn: 304522
* [TableGen] Remove a couple unused methods from Record that take a StringRef ↵Craig Topper2017-06-021-8/+0
| | | | | | | | argument. NFC We also have a version that takes an Init* that are used. llvm-svn: 304521
* Move the code to find a binary in a bundle in the target.exec-search-pathsJason Molenda2017-06-024-64/+93
| | | | | | | | from PlatformRemoteDarwinDevice into PlatformDarwin, and have both PlatformRemoteDarwinDevice and PlatformMacOSX call it there. <rdar://problem/31825940> llvm-svn: 304520
* Minor fixes to for-loop warning.Richard Trieu2017-06-021-29/+22
| | | | | | | | | | | | | The warning for unchanged loop variables outputted a diagnostic that was dependent on iteration order from a pointer set, which is not always deterministic. Switch to a set vector, which allows fast querying and preserves ordering. Also make other minor changes in this area. Use more range-based for-loops. Remove limitation on SourceRanges that no logner exists. llvm-svn: 304519
* [coroutines] PR33271: Remove stray coro.save intrinsics during CoroSplitGor Nishanov2017-06-022-1/+16
| | | | | | | | | | | | | | | | | | | | | | | Summary: Optimization passes may remove llvm.coro.suspend intrinsic while leaving matching llvm.coro.save intrinsic orphaned. Make sure we clean up orphaned coro.saves. The bug manifested with a crash similar to this: ``` llvm_unreachable("Unknown type!"); llvm::MVT::getVT (Ty=0x489518, HandleUnknown=false) llvm::EVT::getEVT llvm::TargetLoweringBase::getValueType llvm::ComputeValueVTs llvm::SelectionDAGBuilder::visitTargetIntrinsic ``` Reviewers: GorNishanov Subscribers: EricWF, llvm-commits Differential Revision: https://reviews.llvm.org/D33817 llvm-svn: 304518
* [Profile] Enhance expect lowering to handle correlated branchesXinliang David Li2017-06-024-0/+663
| | | | | | | | | builtin_expect applied on && or || expressions were not handled properly before. With this patch, the problem is fixed. Differential Revision: http://reviews.llvm.org/D33164 llvm-svn: 304517
* [ThinLTO] Efficiency improvement when writing module path string tableTeresa Johnson2017-06-021-42/+60
| | | | | | | | | | | | | | | | | | | | | | | | Summary: When writing the combined index, we are walking the entire module path StringMap in the full index, and checking whether each one should be included in the index being written. For distributed backends, where we write an individual combined index for each file, each with only a few module paths, this is incredibly inefficient. Add a method that takes a callback and hides the details of whether we are writing the full combined index, or just a slice, and in the latter case it walks the set of modules to include instead of the entire index. For a huge application with around 23K files (i.e. where we were iterating through the 23K-entry modulePath StringMap 23K times), this change improved the thin link time by a whopping 48%. Reviewers: pcc Subscribers: Prazek, inglorion, llvm-commits Differential Revision: https://reviews.llvm.org/D33813 llvm-svn: 304516
* Support lazy stat'ing of files referenced by module maps.Richard Smith2017-06-0220-152/+546
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch adds support for a `header` declaration in a module map to specify certain `stat` information (currently, size and mtime) about that header file. This has two purposes: - It removes the need to eagerly `stat` every file referenced by a module map. Instead, we track a list of unresolved header files with each size / mtime (actually, for simplicity, we track submodules with such headers), and when attempting to look up a header file based on a `FileEntry`, we check if there are any unresolved header directives with that `FileEntry`'s size / mtime and perform deferred `stat`s if so. - It permits a preprocessed module to be compiled without the original files being present on disk. The only reason we used to need those files was to get the `stat` information in order to do header -> module lookups when using the module. If we're provided with the `stat` information in the preprocessed module, we can avoid requiring the files to exist. Unlike most `header` directives, if a `header` directive with `stat` information has no corresponding on-disk file the enclosing module is *not* marked unavailable (so that behavior is consistent regardless of whether we've resolved a header directive, and so that preprocessed modules don't get marked unavailable). We could actually do this for all `header` directives: the only reason we mark the module unavailable if headers are missing is to give a diagnostic slightly earlier (rather than waiting until we actually try to build the module / load and validate its .pcm file). Differential Revision: https://reviews.llvm.org/D33703 llvm-svn: 304515
* [RS4GC] Comment clarificationPhilip Reames2017-06-021-2/+2
| | | | llvm-svn: 304514
* Run fabricateDefaultCommands before fixSectionAlignments.Rafael Espindola2017-06-023-12/+12
| | | | | | | This allows us to remove the PageAlign field. It will also allow moving fabricateDefaultCommands earlier. llvm-svn: 304513
* Revert r304117 - WebAssembly object format isn't ready to be the defaultJacob Gravelle2017-06-021-4/+2
| | | | | | | | | | | | Summary: Wasm object format has some functionality regressions from the ELF format, and doesn't play nicely with the rest of the toolchain. It should eventually be the default, but not yet. Reviewers: sunfish, sbc100 Subscribers: jfb, dschuff, llvm-commits Differential Revision: https://reviews.llvm.org/D33811 llvm-svn: 304512
* Simplify. NFC.Rafael Espindola2017-06-021-2/+1
| | | | llvm-svn: 304511
* [TypeSystem] Handle Clang AttributedTypesSean Callanan2017-06-022-10/+126
| | | | | | | | | | | | | | | | | | | When parsing types originating in modules, it is possible to encounter AttributedTypes (such as the type generated for NSString *_Nonnull). Some of LLDB's ClangASTContext methods deal with them; others do not. In particular, one function that did not was GetTypeInfo, causing TestObjCNewSyntax to fail. This fixes that, treating AttributedType as essentially transparent and getting the information for the modified type. In addition, however, TestObjCNewSyntax is a monolithic test that verifies a bunch of different things, all of which can break independently of one another. I broke it apart into smaller tests so that we get more precise failures when something (like this) breaks. Differential Revision: https://reviews.llvm.org/D33812 llvm-svn: 304510
* Revert "[AArch64] Add ARMv8.2-A FP16 vefctor intrinsics"Vedant Kumar2017-06-029-2238/+240
| | | | | | | | | | | | This reverts commit r304493. It breaks all the Darwin bots: http://green.lab.llvm.org/green/job/clang-stage1-cmake-RA-incremental_check/37168 Failure: Failing Tests (2): Clang :: CodeGen/aarch64-v8.2a-neon-intrinsics.c Clang :: CodeGen/arm_neon_intrinsics.c llvm-svn: 304509
* [sanitizer-coverage] nuke more stale codeKostya Serebryany2017-06-023-160/+3
| | | | llvm-svn: 304508
* [Sema] Improve -Wstrict-prototypes diagnostic message for blocks.Akira Hatanaka2017-06-024-18/+40
| | | | | | | | | | | Print "this block declaration is not a prototype" for non-prototype declarations of blocks instead of "this function declaration ...". rdar://problem/32461723 Differential Revision: https://reviews.llvm.org/D33739 llvm-svn: 304507
* PR32848: There isn't necessarily a FileChanged or FileSkipped for every ↵Richard Smith2017-06-022-4/+9
| | | | | | | | | InclusionDirective callback. In particular, you don't get one if the inclusion directive encountered an error. Don't assert in that case. llvm-svn: 304506
* [WebAssembly] MC: Fix references to undefined externals in data sectionSam Clegg2017-06-023-11/+34
| | | | | | | | | | | | Undefined externals don't need to have a size or an offset. This was broken by r303915. Added a test for this case. This fixes the "Compile LLVM Torture (o)" step on the wasm waterfall. Differential Revision: https://reviews.llvm.org/D33803 llvm-svn: 304505
* [sanitizer-coverage] nuke more stale codeKostya Serebryany2017-06-029-627/+25
| | | | llvm-svn: 304504
* [sanitizer-coverage] nuke more stale codeKostya Serebryany2017-06-025-140/+2
| | | | llvm-svn: 304503
* [CodeGen] Iterate over explicit instruction list for block statements. NFCMichael Kruse2017-06-022-2/+10
| | | | | | | | | | | | For when statements do not contain all instructions of a BasicBlock anymore, the block generator needs to go through the explicit list of instructions it contains. Contributed-by: Nandini Singhal <cs15mtech01004@iith.ac.in> Differential Revision: https://reviews.llvm.org/D33653 llvm-svn: 304502
* [ThinLTO] Add x86 requires to thin_link_bitcode. NFC.Tim Shen2017-06-021-0/+2
| | | | | | | | | It already specifies the triples, so the intention was to test x86 for now (or then). Differential Revision: https://reviews.llvm.org/D33692 llvm-svn: 304501
* [sanitizer-coverage] nuke more stale codeKostya Serebryany2017-06-014-43/+0
| | | | llvm-svn: 304500
* [CodeGen] Surround assertion with parentheses.Davide Italiano2017-06-011-1/+1
| | | | | | This should placate GCC's -Wparentheses. llvm-svn: 304499
* [PredicateInfo] Enable -reverse-iterate tests only for +Asserts buildsMandeep Singh Grang2017-06-014-2/+688
| | | | | | | | | | | | | | Summary: The flag -reverse-iterate is present only on +Asserts builds. Reviewers: dberlin, davide, RKSimon, efriedma, chapuni Reviewed By: efriedma, chapuni Subscribers: chapuni, llvm-commits Differential Revision: https://reviews.llvm.org/D33795 llvm-svn: 304498
* [PM] GVNSink is off by default, fix an obvious typo.Davide Italiano2017-06-011-1/+1
| | | | llvm-svn: 304497
* [ThinLTO] Wire up ThinLTO and new PMTim Shen2017-06-012-3/+24
| | | | | | | | | | | | Summary: This patch teaches clang to use and propagate new PM in ThinLTO. Reviewers: davide, chandlerc, tejohnson Subscribers: mehdi_amini, Prazek, inglorion, cfe-commits Differential Revision: https://reviews.llvm.org/D33692 llvm-svn: 304496
* [CodeGen] Fix some Clang-tidy modernize-use-using and Include What You Use ↵Eugene Zelenko2017-06-0115-342/+419
| | | | | | warnings; other minor fixes (NFC). llvm-svn: 304495
* Fix 2 more -Wreorder warnings.Zachary Turner2017-06-011-4/+4
| | | | llvm-svn: 304494
* [AArch64] Add ARMv8.2-A FP16 vefctor intrinsicsAbderrazek Zaafrani2017-06-019-240/+2238
| | | | llvm-svn: 304493
* [ThinLTO] Move -lto-use-new-pm to llvm-lto2, and change it to -use-new-pm.Tim Shen2017-06-016-9/+14
| | | | | | | | | | | | | | | | | | Summary: As we teach Clang to use ThinkLTO + new PM, it's good for the users to inject through Config, instead of setting a flag in the LTOBackend library. Move the flag to llvm-lto2. As it moves to llvm-lto2, a new name -use-new-pm seems simpler and as clear. Reviewers: davide, tejohnson Subscribers: mehdi_amini, Prazek, inglorion, eraman, chandlerc, llvm-commits Differential Revision: https://reviews.llvm.org/D33799 llvm-svn: 304492
* Move GVNHoist to the right position in the new pass manager pipeline.Davide Italiano2017-06-011-2/+4
| | | | | | | | | GVNHoist was moved as part of simplification passes for the current pass manager (but not for the new), so they're out-of-sync. Differential Revision: https://reviews.llvm.org/D33806 llvm-svn: 304490
* Fix compiler_rt buildbot failureXinliang David Li2017-06-011-4/+10
| | | | llvm-svn: 304489
* Reapply "[Cloning] Take another pass at properly cloning debug info"Keno Fischer2017-06-016-118/+48
| | | | | | | | This was rL304226, reverted in 304228 due to a clang assertion failure on the build bots. That problem should have been addressed by clang commit rL304470. llvm-svn: 304488
* [test] Allow non-libc++ coroutine_handle::done to strengthen noexceptCasey Carter2017-06-014-6/+6
| | | | llvm-svn: 304487
* Relax test to try and appease builders. NFC.Vedant Kumar2017-06-011-6/+6
| | | | | | | | | | I'm not sure why, but on some bots, the order of two instructions are swapped (as compared to the output on my machine). Loosen up the CHECK-NEXT directives to deal with this. Failing bot: http://lab.llvm.org:8011/builders/clang-with-lto-ubuntu/builds/3097 llvm-svn: 304486
* Fix -Wreorder warnings.Zachary Turner2017-06-012-2/+2
| | | | llvm-svn: 304485
* [CodeView] Properly align symbol records on read/write.Zachary Turner2017-06-0120-52/+123
| | | | | | | | | | | | | | | | | Object files have symbol records not aligned to any particular boundary (e.g. 1-byte aligned), while PDB files have symbol records padded to 4-byte aligned boundaries. Since they share the same reading / writing code, we have to provide an option to specify the alignment and propagate it up to the producer or consumer who knows what the alignment is supposed to be for the given container type. Added a test for this by modifying the existing PDB -> YAML -> PDB round-tripping code to round trip symbol records as well as types. Differential Revision: https://reviews.llvm.org/D33785 llvm-svn: 304484
* [ScopBuilder] Exclude ignored intrinsics from explicit instruction list.Michael Kruse2017-06-012-1/+48
| | | | | | | | | | | | | | Ignored intrinsics are ignored at code generation, therefore do not need to be part of the instruction list. Specifically, llvm.lifetime.* intrinisics are removed before code generation, referencing them would cause a use-after-free error. Contributed-by: Nandini Singhal <cs15mtech01004@iith.ac.in> Differential Revision: https://reviews.llvm.org/D33768 llvm-svn: 304483
* [AMDGPU] Fix kernel arg segment size for amdgizclYaxun Liu2017-06-012-1/+4
| | | | | | Differential Revision: https://reviews.llvm.org/D33307 llvm-svn: 304482
* Added LLVM_FALLTHROUGH to address warning: this statement may fall through. NFC.Galina Kistanova2017-06-011-0/+2
| | | | llvm-svn: 304481
* Add opt-bisect support to polly.Eli Friedman2017-06-012-1/+7
| | | | | | | | | This is useful for debugging miscompiles and extracting testcases for crashes. See http://llvm.org/docs/OptBisect.html . Differential Revision: https://reviews.llvm.org/D33752 llvm-svn: 304480
* Added LLVM_FALLTHROUGH to address warning: this statement may fall through. NFC.Galina Kistanova2017-06-011-0/+1
| | | | llvm-svn: 304479
* Added LLVM_FALLTHROUGH to address warning: this statement may fall through. NFC.Galina Kistanova2017-06-011-0/+4
| | | | llvm-svn: 304478
* Added LLVM_FALLTHROUGH to address warning: this statement may fall through. NFC.Galina Kistanova2017-06-011-1/+2
| | | | llvm-svn: 304477
* Add opt-bisect support for region passes.Eli Friedman2017-06-013-3/+33
| | | | | | | | This is necessary to get opt-bisect working with polly. Differential Revision: https://reviews.llvm.org/D33751 llvm-svn: 304476
OpenPOWER on IntegriCloud