summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* [tests] Don't compile CFI C tests in C++ mode.Alexey Samsonov2016-02-243-7/+13
| | | | llvm-svn: 261708
* [InstCombine] refactor visitOr() to use foldCastedBitwiseLogic()Sanjay Patel2016-02-231-47/+31
| | | | | | | | | | | | | | | | Note: The 'and' case in foldCastedBitwiseLogic() is inheriting one extra check from the nearly identical 'or' case: if ((!isa<ICmpInst>(Cast0Src) || !isa<ICmpInst>(Cast1Src)) But I'm not sure how to expose that difference in a regression test. Without that check, the 'or' path will infinite loop on: test/Transforms/InstCombine/zext-or-icmp.ll because the zext-or-icmp fold is attempting a reverse transform. The refactoring should extend to the 'xor' case next to solve part of PR26702. llvm-svn: 261707
* [doc] Obtaining help on LLVM's CUDA support.Jingyue Wu2016-02-231-0/+6
| | | | llvm-svn: 261706
* PR24667: fix quadratic runtime if textually-included modular headers define ↵Richard Smith2016-02-233-25/+65
| | | | | | large numbers of macros. llvm-svn: 261705
* When looking for symbols, find load addresses in a more robust way.Sean Callanan2016-02-231-36/+77
| | | | | | | | | | | | | | | | IRExecutionUnit previously replicated a bunch of logic that already existed elsewhere for the purpose of getting a load address for a symbol. This approach failed to resolve certain types of symbols. Instead, we now use functions on SymbolContext to do the address resolution. This is a cleanup of IRExecutionUnit::FindInSymbols, and also fixes a latent bug where we looked at the wrong SymbolContext to determine whether or not it is external. <rdar://problem/24770829> llvm-svn: 261704
* [analyzer] Find ObjC 'self' decl even when block captures local named 'self'.Devin Coughlin2016-02-233-3/+42
| | | | | | | | | When looking up the 'self' decl in block captures, make sure to find the actual self declaration even when the block captures a local variable named 'self'. rdar://problem/24751280 llvm-svn: 261703
* Revert "[WebAssembly] Stackify code emitted by eliminateFrameIndex"Derek Schuff2016-02-234-28/+24
| | | | | | This reverts r261685 due to wasm test breakage. llvm-svn: 261702
* minimize test and use FileCheckSanjay Patel2016-02-231-32/+18
| | | | llvm-svn: 261701
* [CMake] Support component-based installation for runtime librariesChris Bieneman2016-02-231-2/+38
| | | | | | This enables targets like "install-ubsan" and "install-asan" to install all associated runtime libraries. llvm-svn: 261700
* [CMake] Assign components and dependencies during add_compiler_rt_resource_fileChris Bieneman2016-02-234-8/+8
| | | | | | This makes it so that component-based installations will include resource files (i.e. blacklists). My next patch will add support for component-based installations. llvm-svn: 261699
* AArch64: rename compact unwind forms back to UNWIND_ARM64_*. NFC.Tim Northover2016-02-231-30/+30
| | | | | | | Looks like the global rename last year was a bit over-zealous. These things really are referred to with ARM64 elsewhere (ld64, libunwind, ...). llvm-svn: 261698
* [WebAssembly] Stackify code emitted by eliminateFrameIndexDerek Schuff2016-02-234-24/+28
| | | | llvm-svn: 261685
* [profile] Fix iteration over profile data entriesVedant Kumar2016-02-232-2/+2
| | | | | | | | | | | | | | Fix a crash when gathering value profile data on i386 Darwin. The Darwin linker shrinks sections containing aligned structures when padding is not explicitly added to the end of the structure. When iterating over these structures, be sure to not walk past the end of the section. No tests added, since running `ninja check-profile` on i386 Darwin is enough to reproduce the original crash. llvm-svn: 261683
* Use a different error in test.Rafael Espindola2016-02-231-18/+18
| | | | | | This opens the way for -r being implemented. llvm-svn: 261682
* [CMake] Create an install-distribution target driven by ↵Chris Bieneman2016-02-231-0/+17
| | | | | | | | | | LLVM_DISTRIBUTION_COMPONENTS The idea here is to provide a customizable install target that only depends on building the things you actually want to install. It relies on each component being installed having an auto-generated install-${component}, which in turn depends only on the target being installed. This is fundamentally a workaround for the fact that CMake generates build files which have their "install" target depend on the "all" target. This results in "ninja install" building a bunch of unneeded things. llvm-svn: 261681
* [CMake] Add install-clang-format target by migrating to add_clang_toolChris Bieneman2016-02-231-8/+19
| | | | | | This change migrates clang-format to add_clang_tool which makes a component-based install target. To support component-based installation the extra installed scripts all need to have the "clang-format" component too. llvm-svn: 261680
* ARM: fix handling of movw/movt relocations with addend.Tim Northover2016-02-232-3/+72
| | | | | | | | We were emitting only one half of a the paired relocations needed for these instructions because we decided that an offset needed a scattered relocation. In fact, movw/movt relocations can be paired without being scattered. llvm-svn: 261679
* Fix the aarch64 logic for dynamic relocations.Rafael Espindola2016-02-235-81/+33
| | | | | | | | | | | | | There is nothing aarch64 specific in here. If a symbol can be preempted, we need to copy the full relocation to the dynamic linker. If a symbol cannot be preempted, we can make the dynamic linker life easier and produce a relative relocation. This is directly equivalent to R_X86_64_64 to R_x86_64_RELATIVE conversion. llvm-svn: 261678
* Fix a missing closing tagMarshall Clow2016-02-231-1/+1
| | | | llvm-svn: 261677
* More updatesMarshall Clow2016-02-231-8/+8
| | | | llvm-svn: 261676
* [AArch64] Generate csinv instruction more oftenGeoff Berry2016-02-233-64/+101
| | | | | | | | | | Reviewers: t.p.northover, jmolloy Subscribers: aemerson, rengolin, mcrosier, llvm-commits Differential Revision: http://reviews.llvm.org/D17546 llvm-svn: 261675
* Rename Action::begin() to Action::input_begin().Nico Weber2016-02-236-29/+35
| | | | | | | | Also introduce inputs() that reutnrs an llvm::iterator_range. Iterating over A->inputs() is much less mysterious than iterating over *A. No intended behavior change. llvm-svn: 261674
* Reapply r261657.Adrian Prantl2016-02-231-11/+9
| | | | | | | | | | | | | | | | | | | | | | Remove an unnecessary workaround introduced in r259975. (NFC) Now that LLVM r259973 allows replacing a temporary type with another temporary we can rely on the original implementation. It is possible for enums to be created as part of their own declcontext. In this case a FwdDecl will be created twice. This doesn't cause a problem because both FwdDecls are entered into the ReplaceMap: finalize() will replace the first FwdDecl with the second and then replace the second with complete type. Thanks to echristo for pointing this out. # Conflicts: # lib/CodeGen/CGDebugInfo.cpp llvm-svn: 261673
* Fix commentXinliang David Li2016-02-231-1/+1
| | | | llvm-svn: 261672
* Revert r261633 "Supporting all entities declared in lexical scope in LLVM ↵Hans Wennborg2016-02-2320-815/+91
| | | | | | | | debug info." This and the corresponding Clang change caused PR26715. llvm-svn: 261671
* Revert r261634 "Supporting all entities declared in lexical scope in LLVM ↵Hans Wennborg2016-02-235-100/+30
| | | | | | | | debug info." and r261657 r261634 and r261633 seems to have caused PR26715. r261657 depends on the former two. llvm-svn: 261670
* Amends r252104 to evaluate the controlling expression in an unevaluated ↵Aaron Ballman2016-02-232-4/+11
| | | | | | context. This eliminates false-positive diagnostics about null pointer dereferences (etc) in the controlling expression. llvm-svn: 261669
* Simplify. NFC.Rafael Espindola2016-02-234-22/+16
| | | | llvm-svn: 261668
* Don't include tbss's alignment in offset.Rafael Espindola2016-02-235-4/+61
| | | | | | | | | | | The .tbss section is in the middle of a PT_LOAD. Whatever treatment we give to its address we must also give to the offset. We were ignoring it for address computations, but not for offset. Fixes pr26712. llvm-svn: 261667
* [X86ISelLowering] Stop typing the same return over and over and over.Davide Italiano2016-02-231-11/+14
| | | | llvm-svn: 261666
* Fix PR25339: ARM Constant IslandWeiming Zhao2016-02-231-9/+39
| | | | | | | | | | | | | | | | Summary: Currently, the ARM Constant Island may not converge (or not converge quickly). This patch let it move to the closest water after the user if it doesn't converge after 15 iterations. This address https://llvm.org/bugs/show_bug.cgi?id=25339 Reviewers: t.p.northover, srhines, kristof.beyls, aadg, rengolin Subscribers: weimingz, aemerson, rengolin, llvm-commits Differential Revision: http://reviews.llvm.org/D16890 llvm-svn: 261665
* [WebAssembly] Add TODO comment to revisit red zone sizeDerek Schuff2016-02-231-0/+3
| | | | llvm-svn: 261664
* Handle bitcode files in archive files with --whole-archive.Rui Ueyama2016-02-234-11/+8
| | | | | | | | | | This patch moves BitcodeFile instantiation into createObjectFile. Previously, we handle bitcode files outside that function and did not handle for --whole-archive. http://reviews.llvm.org/D17527 llvm-svn: 261663
* [WebAssembly] Implement red zone for user stackDerek Schuff2016-02-233-26/+68
| | | | | | | | | | | Implements a mostly-conventional redzone for the userspace stack. Because we have unsigned load/store offsets we continue to use a local SP subtracted from the incoming SP but do not write it back to memory. Differential Revision: http://reviews.llvm.org/D17525 llvm-svn: 261662
* These new tests fail on the green-dragon bots, which use an old Apple compiler.Marshall Clow2016-02-231-8/+10
| | | | | | | Since they're scheduled to be updated soon, we'll just comment out this test for the moment, and re-commit when the bots are updated. llvm-svn: 261661
* tsan: clean up code after r261658Dmitry Vyukov2016-02-233-4/+2
| | | | llvm-svn: 261660
* [InstCombine] improve readability ; NFCISanjay Patel2016-02-231-30/+36
| | | | | | Less indenting, named local variables, more descriptive names. llvm-svn: 261659
* tsan: fix signal handling in ignored librariesDmitry Vyukov2016-02-234-6/+145
| | | | | | | | | | | | | | The first issue is that we longjmp from ScopedInterceptor scope when called from an ignored lib. This leaves thr->in_ignored_lib set. This, in turn, disables handling of sigaction. This, in turn, corrupts tsan state since signals delivered asynchronously. Another issue is that we can ignore synchronization in asignal handler, if the signal is delivered into an IgnoreSync region. Since signals are generally asynchronous, they should ignore memory access/synchronization/interceptor ignores. This could lead to false positives in signal handlers. llvm-svn: 261658
* Remove an unnecessary workaround introduced in r259975. (NFC)Adrian Prantl2016-02-231-12/+9
| | | | | | | | | | | | | | | | Now that LLVM r259973 allows replacing a temporary type with another temporary we can rely on the original implementation. It is possible for enums to be created as part of their own declcontext. In this case a FwdDecl will be created twice. This doesn't cause a problem because both FwdDecls are entered into the ReplaceMap: finalize() will replace the first FwdDecl with the second and then replace the second with complete type. Thanks to echristo for pointing this out. llvm-svn: 261657
* [WinEH] Don't inline an 'unwinds to caller' cleanupret into funclets which ↵David Majnemer2016-02-232-0/+86
| | | | | | | | | | | | | | | | | | | | | locally unwind It is problematic if the inlinee has a cleanupret which unwinds to caller and we inline it into a call site which doesn't unwind. If the funclet unwinds anywhere other than to the caller, then we will give the funclet two unwind destinations. This will result in a verifier failure. Seeing as how the caller wasn't an invoke (which would locally unwind) and that the funclet cannot unwind to caller, we must conclude that an 'unwind to caller' cleanupret is dynamically unreachable. This fixes PR26698. Differential Revision: http://reviews.llvm.org/D17536 llvm-svn: 261656
* More updatesMarshall Clow2016-02-231-11/+11
| | | | llvm-svn: 261655
* Revert "[VFS] Add support for handling path traversals"Bruno Cardoso Lopes2016-02-234-242/+23
| | | | | | | | | | | | | | This reverts commit r261551 due to failing tests in windows bots: http://lab.llvm.org:8011/builders/clang-x64-ninja-win7/builds/10054 Failing Tests (4): Clang-Unit :: Basic/BasicTests.exe/VFSFromYAMLTest.CaseInsensitive Clang-Unit :: Basic/BasicTests.exe/VFSFromYAMLTest.DirectoryIteration Clang-Unit :: Basic/BasicTests.exe/VFSFromYAMLTest.MappedFiles Clang-Unit :: Basic/BasicTests.exe/VFSFromYAMLTest.UseExternalName llvm-svn: 261654
* Add tests for LWG#2560. No code changes, just testsMarshall Clow2016-02-231-0/+9
| | | | llvm-svn: 261653
* [InstCombine] less indenting; NFCSanjay Patel2016-02-231-31/+32
| | | | llvm-svn: 261652
* [lld] [ELF/AArch64] Fix R_AARCH64_ABS64 in Shared modeAdhemerval Zanella2016-02-235-11/+90
| | | | | | | | | | | | | | This patch fixes the R_AARCH64_ABS64 relocation when used in shared mode, where it requires a dynamic R_AARCH64_RELATIVE relocation. To correct set the addend on the dynamic relocation (since it will be used by the dynamic linker), a new TargetInfo specific hook was created (getDynRelativeAddend) to get the correct addend based on relocation type. The patch fixes the issues when creating shared library code against {init,fini}_array, where it issues R_AARCH64_ABS64 relocation against local symbols. llvm-svn: 261651
* [AArch64] Fix fastcc -tailcallopt epilog code generation.Geoff Berry2016-02-232-6/+115
| | | | | | | | | | | | | | Summary: Fix a bug in epilog generation where the incoming stack arguments were not being popped for fastcc functions when -tailcallopt was passed. Reviewers: t.p.northover, mcrosier, jmolloy, rengolin Subscribers: aemerson, rengolin, mcrosier, llvm-commits Differential Revision: http://reviews.llvm.org/D16894 llvm-svn: 261650
* [InstCombine] add helper function to foldCastedBitwiseLogic() ; NFCISanjay Patel2016-02-232-29/+41
| | | | | | | | | | | | This is a straight cut and paste of the existing code and is intended to be the first step in solving part of PR26702: https://llvm.org/bugs/show_bug.cgi?id=26702 We should be able to reuse most of this and delete the nearly identical existing code in visitOr(). Then, we can enhance visitXor() to use the same code too. llvm-svn: 261649
* Add additional tests to ensure that we DTRT with short lists. This is ↵Marshall Clow2016-02-231-0/+14
| | | | | | LWG#2590, but there are no code changes, just additional tests llvm-svn: 261648
* More updates; patch for 2583 readyMarshall Clow2016-02-231-4/+4
| | | | llvm-svn: 261647
* Fix a typo. NFCAlexander Kornienko2016-02-232-2/+2
| | | | llvm-svn: 261646
OpenPOWER on IntegriCloud