summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* ARMLoadStoreOptimizer: Fix errata 602117 handling and make testcase actually ↵Matthias Braun2015-06-243-122/+128
| | | | | | | | | | test for it This fixes PR23912 Differential Revision: http://reviews.llvm.org/D10620 llvm-svn: 240582
* Reduce FreeBSD log spamEd Maste2015-06-241-4/+2
| | | | | | | | The values of four important registers are included in logs for ptrace PT_GETREGS. Put all four on the same line for a more compact log. Also use the proper 64-bit register names. llvm-svn: 240581
* Make computeSymbolSizes never fail.Rafael Espindola2015-06-248-24/+54
| | | | | | | | | | | On ELF that was already the case since getting the size of a symbol never fails. On MachO and COFF we could fail trying to get the section of a symbol. But we don't really need the section, just the section number to know if two symbols are in the same section or not. llvm-svn: 240580
* MIR Serialization: Serialize simple MachineRegisterInfo attributes.Alex Lorenz2015-06-245-4/+79
| | | | | | | | | | | | | This commit serializes the 3 scalar boolean attributes from the MachineRegisterInfo class: IsSSA, TracksRegLiveness, and TracksSubRegLiveness. These attributes are serialized as part of the machine function YAML mapping. Reviewers: Duncan P. N. Exon Smith Differential Revision: http://reviews.llvm.org/D10618 llvm-svn: 240579
* Fix an issue where an SBValue could end up capturing a synthetic value and ↵Enrico Granata2015-06-241-3/+9
| | | | | | | | would then be unable to return the non-synthetic version thereof This patch makes the backing ValueImpl always store the root-most value no matter the "flavor" that is initially passed into it llvm-svn: 240578
* tsan: fix false positive between dlopen and dl_iterate_phdrDmitry Vyukov2015-06-242-0/+95
| | | | | | | | | We see false reports between dlopen and dl_iterate_phdr. This happens because tsan does not see dynamic linker internal synchronization. Unpoison module names in dl_iterate_phdr callback. llvm-svn: 240576
* Use Symbol::getValue to simplify object::computeSymbolSizes. NFC.Rafael Espindola2015-06-241-4/+2
| | | | llvm-svn: 240575
* Remove environment variables from driver testsSteven Wu2015-06-241-0/+12
| | | | | | | | | | | | | | | | | Summary: Remove some of dangerous environmental variables from clang/Driver tests. Driver tests should not rely on preset value of these variables and may actually fail because of them. They cannot be removed in test/lit.cfg because we still need to support relocatable SDKs and other overwrite for other clang tests. Reviewers: bogner Subscribers: rnk, cfe-commits Differential Revision: http://reviews.llvm.org/D7135 llvm-svn: 240574
* [LSR] canonicalize Prod*(1<<C) to Prod<<CJingyue Wu2015-06-246-11/+56
| | | | | | | | | | | | | | | | | | | | | Summary: Because LSR happens at a late stage where mul of a power of 2 is typically canonicalized to shl, this canonicalization emits code that can be better CSE'ed. Test Plan: Transforms/LoopStrengthReduce/shl.ll shows how this change makes GVN more powerful. Fixes some existing tests due to this change. Reviewers: sanjoy, majnemer, atrick Reviewed By: majnemer, atrick Subscribers: majnemer, llvm-commits Differential Revision: http://reviews.llvm.org/D10448 llvm-svn: 240573
* Use Symbol.getValue to simplify RuntimeDyldCOFF::getSymbolOffset. NFC.Rafael Espindola2015-06-241-17/+2
| | | | llvm-svn: 240572
* [Preprocessor] Iterating over all macros should include those from modules.Jordan Rose2015-06-243-0/+25
| | | | | | | | | | | | So, iterate over the list of macros mentioned in modules, and make sure those are in the master table. This isn't particularly efficient, but hopefully it's something that isn't done too often. PR23929 and rdar://problem/21480635 llvm-svn: 240571
* [ELF] Fix .init_array initializationAdhemerval Zanella2015-06-242-8/+17
| | | | | | | | | | | | | | | Some compilers may not add the section symbol in '.symtab' for the .init_array and 'ldd' just ignore it. It results in global constructor not being called in final executable. This patch add both '.init_array' and '.fini_array' to be added in Atom graph generation even when the section contains no symbol. An already existing testcase is modified to check for such scenario. The issue fixes the llvm test-suite regressions for both Single and MultiSource files. llvm-svn: 240570
* Add a SymbolRef::getValue.Rafael Espindola2015-06-246-27/+59
| | | | | | | | | This returns either the symbol offset or address. Since it is not defined which one, it never has to lookup the section and so never fails. I will add users in the next commit. llvm-svn: 240569
* Devirtualize Constant::replaceUsesOfWithOnConstant.Pete Cooper2015-06-247-85/+100
| | | | | | | | | | | | | | | | | | | | This is part of the work to devirtualize Value. The old pattern was to call replaceUsesOfWithOnConstant which was overridden by subclasses. Those could then call replaceUsesOfWithOnConstantImpl on Constant to handle deleting the current value. To be consistent with other parts of the code, this has been changed so that we call the method on Constant, and that dispatches to an Impl on subclasses. As part of this, it made sense to rename the methods to be more descriptive. The new name is Constant::handleOperandChange, and it requires that all subclasses of Constant implement handleOperandChangeImpl, even if they just throw an error if they shouldn't be called. Reviewed by Duncan Exon Smith. llvm-svn: 240567
* AsmPrinter: Cleanup DIEValue::EmitValue() API, NFCDuncan P. N. Exon Smith2015-06-244-16/+15
| | | | | | | | | Stop taking a `dwarf::Form` in `DIEValue::EmitValue()` and `DIEValue::SizeOf()`, since they're always passed `DIEValue::getForm()` anyway. This is just left over from when `DIEValue` didn't know its own form. llvm-svn: 240566
* Revert rL240435: "Mark SBFrame::GetFunctionName and SBFrame::IsInlined as ↵Oleksiy Vyalov2015-06-243-7/+7
| | | | | | const.". llvm-svn: 240565
* SafeStack: Add another missing header to try to fix FreeBSD build.Peter Collingbourne2015-06-241-0/+1
| | | | llvm-svn: 240564
* Refactor duplicated code. NFC.Rafael Espindola2015-06-242-27/+21
| | | | llvm-svn: 240563
* Object: Add XFAILed test case for r239560.Peter Collingbourne2015-06-241-0/+14
| | | | | | | We ought to also emit unmangled references to dllimported functions, but no existing linker needs this. llvm-svn: 240562
* [CaptureTracking] Avoid long compilation time on large basic blocksBruno Cardoso Lopes2015-06-243-25/+129
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | CaptureTracking becomes very expensive in large basic blocks while calling PointerMayBeCaptured. PointerMayBeCaptured scans the BB the number of times equal to the number of uses of 'BeforeHere', which is currently capped at 20 and bails out with Tracker->tooManyUses(). The bottleneck here is the number of calls to PointerMayBeCaptured * the basic block scan. In a testcase with a 82k instruction BB, PointerMayBeCaptured is called 130k times, leading to 'shouldExplore' taking 527k runs, this currently takes ~12min. To fix this we locally (within PointerMayBeCaptured) number the instructions in the basic block using a DenseMap to cache instruction positions/numbers. We build the cache incrementally every time we need to scan an unexplored part of the BB, improving compile time to only take ~2min. This triggers in the flow: DeadStoreElimination -> MepDepAnalysis -> CaptureTracking. Side note: after multiple runs in the test-suite I've seen no performance nor compile time regressions, but could note a couple of compile time improvements: Performance Improvements - Compile Time Delta Previous Current StdDev SingleSource/Benchmarks/Misc-C++/bigfib -4.48% 0.8547 0.8164 0.0022 MultiSource/Benchmarks/TSVC/LoopRerolling-dbl/LoopRerolling-dbl -1.47% 1.3912 1.3707 0.0056 Differential Revision: http://reviews.llvm.org/D7010 llvm-svn: 240560
* MIR Serialization: Serialize the null register operands.Alex Lorenz2015-06-245-4/+39
| | | | | | | | | | | | This commit serializes the null register machine operands. It uses the '_' keyword to represent them, but the parser also allows the '%noreg' named register syntax. Reviewers: Duncan P. N. Exon Smith Differential Revision: http://reviews.llvm.org/D10580 llvm-svn: 240558
* [LoopVectorizer] Fix bailing-out condition for OptForSize case.Michael Zolotukhin2015-06-242-4/+37
| | | | | | | | | | With option OptForSize enabled, the Loop Vectorizer is not supposed to create tail loop. The condition checking that was invalid and was not matching to the comment above. Patch by Marianne Mailhot-Sarrasin. llvm-svn: 240556
* SafeStack: Add #include of <stdint.h>.Peter Collingbourne2015-06-241-0/+1
| | | | | | Should fix the FreeBSD build. llvm-svn: 240555
* Simplify the logic, NFC.Rafael Espindola2015-06-241-12/+8
| | | | llvm-svn: 240554
* ADTTests: merge #ifdef checks from r240436.Alex Lorenz2015-06-241-3/+1
| | | | | | | This commit merges the #ifdef and #ifndef checks into one #if, as suggested by Duncan P. N. Exon Smith. llvm-svn: 240553
* prepare-builtins: Fix build with LLVM 3.7Tom Stellard2015-06-241-6/+19
| | | | llvm-svn: 240552
* Remove xfail for TestDisassembleBreakpoint.Chaoren Lin2015-06-241-1/+0
| | | | | | LLGS no longer returns trap code in memory. llvm-svn: 240551
* Remove SetResumeState from POSIXThread::RefreshStateAfterStopEd Maste2015-06-241-6/+0
| | | | | | | | | | | With the removal of ProcessLinux in r240543 this code is used only on FreeBSD. FreeBSD isn't affected by whichever issue originally prompted the addition of SetResumeState, so just remove it. As discussed on the mailing list (and mentioned in a FIXME comment) it shouldn't be called there. llvm-svn: 240550
* Remove empty ProcessPOSIX::StopAllThreadsEd Maste2015-06-242-16/+0
| | | | | | | The removal of ProcessLinux in r240543 left only an empty StopAllThreads (it's not needed on FreeBSD), so just remove it too. llvm-svn: 240549
* clang-format: [JS] Support regex literals containing quotes (' and ").Daniel Jasper2015-06-242-3/+29
| | | | llvm-svn: 240548
* Remove unused variableEd Maste2015-06-241-1/+0
| | | | llvm-svn: 240547
* Proper handling of QNonStop packet response.Ewan Crawford2015-06-243-2/+12
| | | | | | Turn non-stop mode off if reply to QNonStop packet isn't an OK. llvm-svn: 240546
* Express Driver::GetFilePath more concisely.Douglas Katzman2015-06-241-14/+5
| | | | llvm-svn: 240545
* Don't get confused with sections whose section number is reserved.Rafael Espindola2015-06-244-12/+116
| | | | | | | It is perfectly possible for SHNDX to contain indexes that have the same value as reserved st_shndx values. llvm-svn: 240544
* Remove old local-only linux debugging codePavel Labath2015-06-2438-3363/+26
| | | | | | | | | | | | | | | | | | | | Summary: Currently, the local-only path fails about 50% of the tests, which means that: a) nobody is using it; and b) the remote debugging path is much more stable. This commit removes the local-only linux debugging code (ProcessLinux) and makes remote-loopback the only way to debug local applications (the same architecture as OSX). The ProcessPOSIX code is moved to the FreeBSD directory, which is now the only user of this class. Hopefully, FreeBSD will soon move to the new architecture as well and then this code can be removed completely. Test Plan: Test suite passes via remote stub. Reviewers: emaste, vharron, ovyalov, clayborg Subscribers: tberghammer, emaste, lldb-commits Differential Revision: http://reviews.llvm.org/D10661 llvm-svn: 240543
* [X86][AVX] Added full set of 256-bit vector shift tests.Simon Pilgrim2015-06-243-0/+1774
| | | | llvm-svn: 240542
* asan: fix 32-bit buildDmitry Vyukov2015-06-241-1/+1
| | | | llvm-svn: 240541
* Eliminate additional redundant copies of Triple objects. NFC.Daniel Sanders2015-06-242-2/+2
| | | | | | | | Subscribers: rafael, llvm-commits, rengolin Differential Revision: http://reviews.llvm.org/D10654 llvm-svn: 240540
* tsan: don't print external PCs in reportsDmitry Vyukov2015-06-246-6/+54
| | | | | | They are meaningless. llvm-svn: 240539
* Fix instruction scheduling live register trackingPawel Bylica2015-06-242-8/+43
| | | | | | | | | | | | | | | | | | | Summary: This patch fixes PR23405 (https://llvm.org/bugs/show_bug.cgi?id=23405). During a node unscheduling an entry in LiveRegGens can be replaced with a new value. That corrupts the live reg tracking and LiveReg* structure is not cleared as should be during unscheduling. Problematic condition that enforces Gen replacement is `I->getSUnit()->getHeight() < LiveRegGens[I->getReg()]->getHeight()`. This condition should be checked only if LiveRegGen was set in current node unscheduling. Test Plan: Regression test included. Reviewers: hfinkel, atrick Reviewed By: atrick Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D9993 llvm-svn: 240538
* Fix location of symbol size calculation in ObjectFileELFTamas Berghammer2015-06-241-1/+1
| | | | | | Bug introduced by r240533 llvm-svn: 240537
* Silencing some Sphinx warnings about duplicate explicit target names.Aaron Ballman2015-06-241-3/+3
| | | | llvm-svn: 240536
* tsan: fix unbounded memory consumption for large mallocsDmitry Vyukov2015-06-242-0/+45
| | | | | | | This happens only in corner cases, but we observed this on a real app. See the test for description of the exact scenario that lead to unbounded memory consumption. llvm-svn: 240535
* [llvm-stress] Simple refactoring and better style. NFC.Pawel Bylica2015-06-241-53/+36
| | | | llvm-svn: 240534
* Improve instruction emulation based stack unwinding on ARMTamas Berghammer2015-06-2410-319/+288
| | | | | | | | | | | | | | | | | | | | | | | * Add and fix the emulation of several instruction. * Disable frame pointer usage on Android. * Specify return address register for the unwind plan instead of explict tracking the value of RA. * Replace prologue detection heuristics (unreliable in several cases) with a logic to follow the branch instructions and restore the CFI value based on them. The target address for a branch should have the same CFI as the source address (if they are in the same function). * Handle symbols in ELF files where the symbol size is not specified with calcualting their size based on the next symbol (already done in MachO files). * Fix architecture in FuncUnwinders with filling up the inforamtion missing from the object file with the architecture of the target. * Add code to read register wehn the value is set to "IsSame" as it meanse the value of a register in the parent frame is the same as the value in the current frame. Differential revision: http://reviews.llvm.org/D10447 llvm-svn: 240533
* [OPENMP] Codegen for 'depend' clause (OpenMP 4.0).Alexey Bataev2015-06-245-57/+386
| | | | | | | | If task directive has associated 'depend' clause then function kmp_int32 __kmpc_omp_task_with_deps ( ident_t *loc_ref, kmp_int32 gtid, kmp_task_t * new_task, kmp_int32 ndeps, kmp_depend_info_t *dep_list,kmp_int32 ndeps_noalias, kmp_depend_info_t *noalias_dep_list) must be called instead of __kmpc_omp_task(). If this directive has associated 'if' clause then also before a call of kmpc_omp_task_begin_if0() a function void __kmpc_omp_wait_deps ( ident_t *loc_ref, kmp_int32 gtid, kmp_int32 ndeps, kmp_depend_info_t *dep_list, kmp_int32 ndeps_noalias, kmp_depend_info_t *noalias_dep_list) must be called. Array sections are not supported yet. llvm-svn: 240532
* [mips][microMIPS] Implement BREAK, EHB and EI instructionsZoran Jovanovic2015-06-249-2/+96
| | | | | | http://reviews.llvm.org/D10090 llvm-svn: 240531
* Remove a limited and somewhat questionable DenseMapInfo specializationChandler Carruth2015-06-241-14/+0
| | | | | | for StringRef now that the core DenseMap library provides this facility. llvm-svn: 240530
* Change how symbol sizes are handled in lib/Object.Rafael Espindola2015-06-2419-79/+89
| | | | | | | | | | | | | | COFF and MachO only define symbol sizes for common symbols. Reflect that in the class hierarchy by having a method for common symbols only in the base and a general one in ELF. This avoids the need of using a magic value for the size, which had a few problems * Most callers didn't check for it. * The ones that did could not tell the magic value from a file actually having that value. llvm-svn: 240529
* [ADT] Teach DenseMap to support StringRef keys.Chandler Carruth2015-06-242-0/+52
| | | | | | | | | | | | While often you want to use something specialized like StringMap, when the strings already have persistent storage a normal densemap over them can be more efficient. This can't go into StringRef.h because of really obnoxious header chains from the hashing code to the endian detection code to CPU feature detection code to StringMap. llvm-svn: 240528
OpenPOWER on IntegriCloud