summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* Enable lsan test suite on Darwin x86_64 buildsFrancis Ricci2017-05-123-4/+12
| | | | | | | | | | Reviewers: kubamracek, alekseyshl Subscribers: mgorny, llvm-commits Differential Revision: https://reviews.llvm.org/D32191 llvm-svn: 302904
* Optimize orphan placement in a general way.Rafael Espindola2017-05-125-120/+253
| | | | | | | | | | | | | | | | | | | | | | | | | | We used to place orphans by just using compareSectionsNonScript. Then we noticed that since linker scripts can use another order, we should first try match the section to a given PT_LOAD. But there is nothing special about PT_LOAD. The same issue can show up for PT_GNU_RELRO for example. In general, we have to search for the most similar section and put the orphan next to it. Most similar being defined as how long they follow the same code path in compareSecitonsNonScript. That is what this patch does. We now compute a rank for each output section, with a bit for each branch in what was compareSectionsNonScript. With this findOrphanPos is now fully general and orphan placement can be optimized by placing every section with the same rank at once. The included testcase is a variation of many-sections.s that uses allocatable sections to avoid the fast path in the existing code. Without threads it goes form 46 seconds to 0.9 seconds. llvm-svn: 302903
* [Polly][NewPM] Port ScopDetection to the new PassManagerPhilip Pfaffe2017-05-129-191/+266
| | | | | | | | | | | | | | | | Summary: This is a proof of concept of how to port polly-passes to the new PassManager architecture. This approach works ootb for Function-Passes, but might not be directly applicable to Scop/Region-Passes. While we could just run the Analyses/Transforms over functions instead, we'd surrender the nice pipelining behaviour we have now. Reviewers: Meinersbur, grosser Reviewed By: grosser Subscribers: pollydev, sanjoy, nemanjai, llvm-commits Tags: #polly Differential Revision: https://reviews.llvm.org/D31459 llvm-svn: 302902
* Enabling the /bigobj flag for SemaDeclAttr.cpp.Aaron Ballman2017-05-121-0/+1
| | | | | | This resolves compile errors with MSVC 2015 x64 debug builds where SemaDeclAttr.cpp is hitting the section symbol limit. llvm-svn: 302901
* Add dyld to sanitizer procmaps on darwinFrancis Ricci2017-05-122-7/+81
| | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: Sanitizer procmaps uses dyld apis to iterate over the list of images in the process. This is much more performan than manually recursing over all of the memory regions in the process, however, dyld does not report itself in the list of images. In order to prevent reporting leaks from dyld globals and to symbolize dyld functions in stack traces, this patch special-cases dyld and ensures that it is added to the list of modules. This is accomplished by recursing through the memory map of the process until a dyld Mach header is found. While this recursion is expensive, it is run before the full set of images has been loaded in the process, so only a few calls are required. The result is cached so that it never needs to be searched for when the full process memory map exists, as this would be incredibly slow, on the order of minutes for leak sanitizer with only 25 or so libraries loaded. Reviewers: alekseyshl, kubamracek Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D32968 llvm-svn: 302899
* Account for stack redzone when computing sp on darwinFrancis Ricci2017-05-121-0/+4
| | | | | | | | | | | thread_get_register_pointer_values handles the redzone computation automatically, but is marked as an unavailable API function. This patch replicates its logic accounting for the stack redzone on x86_64. Should fix flakiness in the use_stack_threaded test for lsan on darwin. llvm-svn: 302898
* [DAGCombine] Use SelectionDAG::getZExtOrTrunc helper. NFCI.Simon Pilgrim2017-05-121-8/+2
| | | | llvm-svn: 302897
* Use SDValue::getOperand() helper. NFCI.Simon Pilgrim2017-05-122-22/+19
| | | | llvm-svn: 302896
* [Hexagon] Make sure to pass empty struct arguments with nontrivial ctorsKrzysztof Parzyszek2017-05-122-7/+3
| | | | | | | | Thanks to Richard Smith for the suggested fix. This fixes llvm.org/PR33009 llvm-svn: 302895
* Use SDValue::getOperand() helper. NFCI.Simon Pilgrim2017-05-121-22/+19
| | | | llvm-svn: 302894
* clang-format: [JS] support non-null assertions after all identifiers.Martin Probst2017-05-122-1/+3
| | | | | | | | | | | | | | | | | Summary: Previously: x = namespace !; Now: x = namespace!; Reviewers: djasper Subscribers: klimek Differential Revision: https://reviews.llvm.org/D33113 llvm-svn: 302893
* [NFC] [Fortran Support] Run -instnamer on testcasesSiddharth Bhat2017-05-122-40/+40
| | | | llvm-svn: 302892
* [FIX] Fix regression caused by c29f4ed, testcase matches outputSiddharth Bhat2017-05-121-1/+1
| | | | | | | - Commit changed codegen for induction variables - Updated testcase llvm-svn: 302891
* [clang-tidy] Add a test for PR33020Alexander Kornienko2017-05-121-0/+20
| | | | | | Fix committed in clang as r302889. llvm-svn: 302890
* Fix an assertion failure (PR33020).Alexander Kornienko2017-05-121-2/+3
| | | | | | Adding a test separately (tools/extra/test/clang-tidy/misc-use-after-move.cpp). llvm-svn: 302889
* [Polly][CMake] Fix variable name in target exportsPhilip Pfaffe2017-05-121-1/+1
| | | | llvm-svn: 302888
* [msan] Remove a failing test from MemorySanitizer.ICmpRelationalAlexander Potapenko2017-05-121-2/+4
| | | | | | | | | | | This is a follow-up to r302787, which broke MemorySanitizer.ICmpRelational. MSan is now reporting a false positive on the following test case: TestForNotPoisoned((poisoned(-1, 0x80000000U) >= poisoned(-1, 0U))) , which is sort of anticipated, because we're approximating the comparison with an OR of the arguments' shadow values. llvm-svn: 302887
* [NFC] [Fortran Support] Cleanup Fortran Array pattern mactch testcasesSiddharth Bhat2017-05-122-88/+63
| | | | | | | | | | - Move the testcases to ScopInfo/ since the processing takes place in ScopBuilder. - Cleanup testcases, run -polly-canonicalize on them, find minimal set of opt parameters. llvm-svn: 302886
* [AVR] Migrate to new StructType::get owing to Supress all uses of ↵Leslie Zhai2017-05-121-1/+1
| | | | | | | | | | | | LLVM_END_WITH_NULL Reviewers: dylanmckay, jroelofs, RKSimon, serge-sans-paille Reviewed By: serge-sans-paille Differential Revision: https://reviews.llvm.org/D33119 llvm-svn: 302885
* [ELF] - Stop support of DF_STATIC_TLS flag.George Rimar2017-05-1211-149/+80
| | | | | | | | This reverts changes introduced in r302414 "[ELF] - Set DF_STATIC_TLS flag for i386 target." Because DF_STATIC_TLS does not look to be used by glibc or anything else. llvm-svn: 302884
* [BPI] Ignore remainder while distributing the remaining probability from ↵Serguei Katkov2017-05-122-11/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | unreachanble This is a follow up patch for https://reviews.llvm.org/rL300440 to address a comment. To make implementation to be consistent with other cases we just ignore the remainder after distribution of remaining probability between reachable edges. If we reduced the probability of some edges coming to unreachable blocks we should distribute the remaining part across other edges coming to reachable blocks to satisfy the condition that sum of all probabilities should be equal to one. If this remaining part is not divided by number of "reachable" edges then we get this remainder. This remainder probability should be pretty small. Other cases just ignore if the sum of probabilities is not equal to one so we do the same. Reviewers: chandlerc, sanjoy, vsk, junbuml, reames Reviewed By: reames Subscribers: reames, llvm-commits Differential Revision: https://reviews.llvm.org/D32124 llvm-svn: 302883
* [APInt] Fix a case where udivrem might delete and create a new allocation ↵Craig Topper2017-05-121-2/+5
| | | | | | instead of reusing the original. llvm-svn: 302882
* [ELF] - Don't allow R_X86_64_TPOFF32 dynamic relocation when linking PICGeorge Rimar2017-05-122-1/+16
| | | | | | | | | | | | | | Both gold and bfd restrict that one: ld.bfd: test.o: relocation R_X86_64_TPOFF32 against `var' can not be used when making a shared object; recompile with -fPIC ld.gold: error: test.o: unsupported reloc 23 against global symbol var What looks reasonable because it is 32 bit one. Patch do the same. Differential revision: https://reviews.llvm.org/D33100 llvm-svn: 302881
* [analyzer] Add modelling of __builtin_assumeGabor Horvath2017-05-122-0/+24
| | | | | | Differential Revision: https://reviews.llvm.org/D33092 llvm-svn: 302880
* [analyzer] Avoid an allocation in Std C function modellingGabor Horvath2017-05-121-1/+4
| | | | | | Differential Revision: https://reviews.llvm.org/D33095 llvm-svn: 302879
* [Support/Compiler.h] - Use gnu::fallthrough for LLVM_FALLTHROUGH when available.George Rimar2017-05-121-0/+2
| | | | | | | | | | | | | | | | | I tried to compile LLD using GCC 7.1.0 and got warnings like "warning: this statement may fall through [-Wimplicit-fallthrough=]" (some more details are here: D32907) GCC's __cplusplus value is 201402L by default, so macro expands to nothing, though GCC 7 has support for [[fallthrough]]. Patch uses gnu::fallthrough when it is available and fixes warning I am observing. Initial idea of way to fix belongs to Davide Italiano. Differential revision: https://reviews.llvm.org/D33036 llvm-svn: 302878
* Handle a COPY with undef source operand in LowerCopy()Jonas Paulsson2017-05-122-2/+17
| | | | | | | | | | | | | Llvm-stress discovered that a COPY may end up in ExpandPostRA::LowerCopy() with an undef source operand. It is not possible for the target to handle this, as this flag is not passed to TII->copyPhysReg(). This patch solves this by treating such a COPY as an identity COPY. Review: Matthias Braun https://reviews.llvm.org/D32892 llvm-svn: 302877
* [IfConversion] Keep the CFG updated incrementally in IfConvertTriangleMikael Holmen2017-05-122-6/+45
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: Instead of using RemoveExtraEdges (which uses analyzeBranch, which cannot always be trusted) at the end to fixup the CFG we keep the CFG updated as we go along and remove or add branches and merge blocks. This way we won't have any problems if the involved MBBs contain unanalyzable instructions. This fixes PR32721. In that case we had a triangle EBB | \ | | | TBB | / FBB where FBB didn't have any successors at all since it ended with an unconditional return. Then TBB and FBB were be merged into EBB, but EBB would still keep its successors, and the use of analyzeBranch and CorrectExtraCFGEdges wouldn't help to remove them since the return instruction is not analyzable (at least not on ARM). Reviewers: kparzysz, iteratee, MatzeB Reviewed By: iteratee Subscribers: aemerson, rengolin, javed.absar, llvm-commits Differential Revision: https://reviews.llvm.org/D33037 llvm-svn: 302876
* Update StructuredData::String to return StringRefs.Zachary Turner2017-05-1232-134/+122
| | | | | | | | It was returning const std::string& which was leading to unnecessary copies all over the place, and preventing people from doing things like Dict->GetValueForKeyAsString("foo", ref); llvm-svn: 302875
* Fix Linux Buildbot.Zachary Turner2017-05-121-1/+1
| | | | llvm-svn: 302874
* [XRay][compiler-rt] Only run custom event logging in x86_64-linuxDean Michael Berris2017-05-121-1/+3
| | | | | | | | | We only have an implementation in x86_64 that works for the patching/unpatching and runtime support (trampolines). Follow-up to D30630. llvm-svn: 302873
* Rename Error -> Status.Zachary Turner2017-05-12655-5772/+5887
| | | | | | | | | | | | | | | This renames the LLDB error class to Status, as discussed on the lldb-dev mailing list. A change of this magnitude cannot easily be done without find and replace, but that has potential to catch unwanted occurrences of common strings such as "Error". Every effort was made to find all the obvious things such as the word "Error" appearing in a string, etc, but it's possible there are still some lingering occurences left around. Hopefully nothing too serious. llvm-svn: 302872
* Fix C++03 test failures caused by static_assert emulationEric Fiselier2017-05-123-6/+6
| | | | llvm-svn: 302871
* Cleanup test issues reported by STL @ Microsoft.Eric Fiselier2017-05-1210-1455/+1214
| | | | | | | | | | | This patch cleans up a number of issues reported by STL, including: 1) Fix duplicate is_convertible test. 2) Move non-standard reference_wrapper tests under test/libcxx 3) Fix assumption that sizeof(wchar_t) == 32 in the codecvt and wstring_convert tests. llvm-svn: 302870
* Remove non-standard basic_string_view::clear() member.Eric Fiselier2017-05-122-75/+0
| | | | | | | | This patch removes the clear() member from <string_view>. The modifier was removed from the TS before it ever landed in the standard. There is no reason libc++ should be providing this method. llvm-svn: 302869
* [Polly] Remove unused headerHongbin Zheng2017-05-121-2/+0
| | | | llvm-svn: 302868
* [PM/Unswitch] Teach the new simple loop unswitch to handle loopChandler Carruth2017-05-122-23/+337
| | | | | | | | | | | | | | | | | | | | | | | | invariant PHI inputs and to rewrite PHI nodes during the actual unswitching. The checking is quite easy, but rewriting the PHI nodes is somewhat surprisingly challenging. This should handle both branches and switches. I think this is now a full featured trivial unswitcher, and more full featured than the trivial cases in the old pass while still being (IMO) somewhat simpler in how it works. Next up is to verify its correctness in more widespread testing, and then to add non-trivial unswitching. Thanks to Davide and Sanjoy for the excellent review. There is one remaining question that I may address in a follow-up patch (see the review thread for details) but it isn't related to the functionality specifically. Differential Revision: https://reviews.llvm.org/D32699 llvm-svn: 302867
* [Polly] Generate more 'canonical' induction variableHongbin Zheng2017-05-1210-30/+30
| | | | | | | | | | | | | | | | | | | | | | | Today Polly generates induction variable in this way: polly.indvar = phi 0, polly.indvar.next ... polly.indvar.next = polly.indvar + stide polly.loop_cond = predicate polly.indvar, (UB - stride) Instead of: polly.indvar = phi 0, polly.indvar.next ... polly.indvar.next = polly.indvar + stide polly.loop_cond = predicate polly.indvar.next, UB The way Polly generate induction variable cause some problem in the indvar simplify pass. This patch make polly generate the later form, by assuming the induction variable never overflow Differential Revision: https://reviews.llvm.org/D33089 llvm-svn: 302866
* Move POSIX specific test under test/libcxx subdirectoryEric Fiselier2017-05-121-0/+0
| | | | llvm-svn: 302865
* Move tests for libc++ configurations into libcxx/ test subdirectoryEric Fiselier2017-05-123-2/+4
| | | | llvm-svn: 302864
* [APInt] Add a utility method to change the bit width and storage size of an ↵Craig Topper2017-05-122-42/+36
| | | | | | | | | | | | | | | | | | | APInt. Summary: This adds a resize method to APInt that manages deleting/allocating storage for an APInt and changes its bit width. Use this to simplify code in copy assignment and divide. The assignment code in particular was overly complicated. Treating every possible case as a separate implementation. I'm also pretty sure the clearUnusedBits code at the end was unnecessary. Since we always copying whole words from the source APInt. All unused bits should be clear in the source. Reviewers: hans, RKSimon Reviewed By: RKSimon Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D33073 llvm-svn: 302863
* Fix or move tests with non-standard assumptionsEric Fiselier2017-05-125-16/+74
| | | | llvm-svn: 302862
* [XRay][compiler-rt] Remove unused variable after refactoringDean Michael Berris2017-05-121-10/+10
| | | | | | Follow-up to D30630. llvm-svn: 302861
* [XRay][compiler-rt] Fix misspeling of XRaySledEntryDean Michael Berris2017-05-122-2/+2
| | | | | | Follow-up to D30630. llvm-svn: 302860
* Guard usage of libc++ regex internals inside test.Eric Fiselier2017-05-121-23/+45
| | | | | | | | | This patch attempts to make lookup_classname.pass.cpp usable against other STL implementations by guarding the use of __regex_word. That being said it seems likely that the test is still non-conforming due to how libc++ handles the "w" character class. llvm-svn: 302859
* DWARF: Avoid cross-CU references under FissionDavid Blaikie2017-05-128-95/+289
| | | | | | | | | | | | | | | | | | Turns out that the Fission/Split DWARF package format (DWP) is currently insufficient to handle cross-CU (ref_addr) references. So for now, duplicate any debug info needed in these situations: * inlined_subroutine's abstract_origin * inlined variable's abstract_origin * types Keep the ref_addr behavior in general, including in the split DWARF inline debug info that can be emitted into the object files for online symbolication. Keep a flag to use the old (ref_addr) behavior for testing ways of addressing this limitation in the DWP tool (& for those not using DWP packaging). llvm-svn: 302858
* [XRay][compiler-rt] Runtime changes to support custom event loggingDean Michael Berris2017-05-1214-140/+429
| | | | | | | | | | | | | | | | | | | | Summary: This change implements support for the custom event logging sleds and intrinsics at runtime. For now it only supports handling the sleds in x86_64, with the implementations for other architectures stubbed out to do nothing. NOTE: Work in progress, uploaded for exposition/exploration purposes. Depends on D27503, D30018, and D33032. Reviewers: echristo, javed.absar, timshen Subscribers: mehdi_amini, nemanjai, llvm-commits Differential Revision: https://reviews.llvm.org/D30630 llvm-svn: 302857
* [XRay][lib] Support and temporarily skip over CustomEvent recordsDean Michael Berris2017-05-121-2/+32
| | | | | | | | | | | | | | | | Summary: In D30630 we will start writing custom event records. To avoid breaking the tools that read the FDR mode records, we skip over these records. To support these custom event records more effectively, we will have to expose them in the trace loading API. Those changes will be forthcoming. Reviewers: kpw, pelikan Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D33032 llvm-svn: 302856
* [tooling] RefactoringCallbacks code cleanupAlexander Shaposhnikov2017-05-122-5/+6
| | | | | | | | | | | | This diff 1. adds missing "explicit" for single argument constructors 2. adds missing std::move in ReplaceNodeWithTemplate constructor Test plan: make check-all Differential revision: https://reviews.llvm.org/D33061 llvm-svn: 302855
* Fix uninitialized bool read causing x86_64-mno-sse.c test failureReid Kleckner2017-05-121-5/+5
| | | | llvm-svn: 302854
OpenPOWER on IntegriCloud