summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Implement sinpi builtinJan Vesely2015-05-065-0/+137
| | | | | | | | Ported from AMD builtin library, passes piglit on Turks. Signed-off-by: Jan Vesely <jan.vesely@rutgers.edu> Reviewed-by: Tom Stellard <thomas.stellard@amd.com> llvm-svn: 236647
* I forgot to return here, so do it, and appease the compilerEnrico Granata2015-05-061-0/+1
| | | | llvm-svn: 236646
* [sanitizer] Restrict the missing coverage test to x86/x86_64.Sergey Matveev2015-05-061-0/+1
| | | | | | Contrary to my hopes, it didn't magically work on other platforms. llvm-svn: 236645
* [x86] Fix register class of folded load index reg.Pete Cooper2015-05-062-0/+37
| | | | | | | When folding a load in to another instruction, we need to fix the class of the index register Otherwise, it could be something like GR64 not GR64_NOSP and would fail the machine verifier. llvm-svn: 236644
* [SanitizerCoverage] Fix a couple of typos. NFC.Alexey Samsonov2015-05-061-7/+7
| | | | llvm-svn: 236643
* MC: Skip names of temporary symbols in object streamerDuncan P. N. Exon Smith2015-05-063-0/+8
| | | | | | | | | | | | | | Don't create names for temporary symbols when using an object streamer. The names never make it to the output anyway. From the starting point of r236629, my heap profile says this drops peak memory usage from 1100 MB to 1058 MB for CodeGen of `verify-uselistorder`, a savings of almost 4% on peak memory, and removes `StringMap<bool, BumpPtrAllocator...>` from the profile entirely. (I'm looking at `llc` memory usage on `verify-uselistorder.lto.opt.bc`; see r236629 for details.) llvm-svn: 236642
* [docs] Update SanitizerCoverage docs.Sergey Matveev2015-05-061-6/+12
| | | | llvm-svn: 236641
* Add a language objc class-table dump commandEnrico Granata2015-05-063-1/+119
| | | | | | This command dumps a bunch of interesting facts about all Objective-C classes known to LLDB in the inferior process llvm-svn: 236640
* math: Add ldexp implementationTom Stellard2015-05-065-1/+144
| | | | | | | | | | | | Signed-off-by: Aaron Watry <awatry@gmail.com> Tom Stellard: - Add denormal handling. - Share vectorization code with r600 implementation. Patch By: Aaron Watry llvm-svn: 236639
* Implement ldexp for R600/SITom Stellard2015-05-067-0/+142
| | | | llvm-svn: 236638
* [sanitizer] Extend sancov.py to show which PCs are missing from coverage.Sergey Matveev2015-05-062-4/+123
| | | | | | | | Example usage: sancov.py print a.out.1234.sancov | sancov.py missing a.out llvm-svn: 236637
* Skip additional lldb-mi tests that failed on FreeBSDEd Maste2015-05-061-0/+3
| | | | llvm-svn: 236636
* CodeGen: move over-zealous assert into actual if statement.Tim Northover2015-05-062-3/+21
| | | | | | | | | | | | | | | It's quite possible to encounter an insertvalue instruction that's more deeply nested than the value we're looking for, but when that happens we really mustn't compare beyond the end of the index array. Since I couldn't see any guarantees about what comparisons std::equal makes, we probably need to directly check the size beforehand. In practice, I suspect most std::equal implementations would probably bail early, which would be OK. But just in case... rdar://20834485 llvm-svn: 236635
* D7631: added regression tests for hinted locks - to be integrated into ↵Andrey Churbanov2015-05-062-0/+157
| | | | | | testsuite. llvm-svn: 236632
* D9302.partial2: cleanup of ittnotify checks, that eliminats redundant ↵Andrey Churbanov2015-05-065-113/+125
| | | | | | notifications in case of nested regions. llvm-svn: 236631
* clang-format: Don't indent 'signals' as access specifier if it isn't oneDaniel Jasper2015-05-062-1/+6
| | | | | | | | | | | | | | Before: { signals.set(0); } After: { signals.set(0); } llvm-svn: 236630
* DwarfDebug: Emit number of bytes in .debug_loc entry directlyDuncan P. N. Exon Smith2015-05-064-20/+7
| | | | | | | | | | | | | | | | | | | | | | Emit the number of bytes in a `.debug_loc` entry directly. The old code created temp labels (expensive), emitted the difference between them, and then emitted one on each side of the relevant bytes. (I'm looking at `llc` memory usage on `verify-uselistorder.lto.opt.bc` (the optimized version of ld64's `-save-temps` when linking the `verify-uselistorder` executable in an LTO bootstrap). I've hacked `MCContext::Allocate()` to just call `malloc()` instead of using the `BumpPtrAllocator` so that the heap profile is easier to read. As far as peak memory is concerned, `MCContext::Allocate()` is equivalent to a leak, since it only gets freed at process teardown. In my heap profile, this patch drops memory usage of `DwarfDebug::emitDebugLoc()` from 132.56 MB (11.4%) down to 29.86 MB (2.7%) at peak memory. Some of that must be noise from `SmallVector` (or other) allocations -- peak memory only dropped from 1160 MB down to 1100 MB -- but this nevertheless shaves 5% off the top.) llvm-svn: 236629
* [asan] Fall back to /proc/$PID/maps on Android L.Evgeniy Stepanov2015-05-063-4/+45
| | | | | | | | dl_iterate_phdr is somewhat broken in L (see the code for details). We add runtime OS version detection and fallback to /proc/maps on L or earlier. This fixes a number of ASan tests on L. llvm-svn: 236628
* Implement `createSanitizerCtor`, common helper function for all sanitizersIsmail Pazarbasi2015-05-062-0/+35
| | | | | | | | | | | | | | | | | Summary: This helper function creates a ctor function, which calls sanitizer's init function with given arguments. This constructor is then expected to be added to module's ctors. The patch helps unifying how sanitizer constructor functions are created, and how init functions are called across all sanitizers. Reviewers: kcc, samsonov Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D8777 llvm-svn: 236627
* [WinEH] Improve fatal error message about failed demotionReid Kleckner2015-05-061-1/+6
| | | | llvm-svn: 236626
* Changed option processing to implicitly use -x c++ if no other -x option ↵John Thompson2015-05-062-7/+16
| | | | | | specified. Added implicit -w option to disable compilation warnings, in particular to avoid warning on pragma once. llvm-svn: 236625
* Fixed infinite recursion bug.John Thompson2015-05-061-1/+1
| | | | llvm-svn: 236624
* D9302.partial: bug fix for ittnotify: added missed timing on hierarchical ↵Andrey Churbanov2015-05-061-0/+7
| | | | | | barrier. llvm-svn: 236623
* Allow the gdb_objc_realized_classes symbol to beSean Callanan2015-05-061-1/+1
| | | | | | | | | any type of symbol, which is okay since we are looking only in the Objective-C module. <rdar://problem/20828139> llvm-svn: 236622
* [driver] Cosmetic change to use Input instead of Inputs[0].Artem Belevich2015-05-062-14/+14
| | | | | | Differential Revision: http://reviews.llvm.org/D9506 llvm-svn: 236621
* Don't attempt DSym tests on Windows.Adrian McCarthy2015-05-061-3/+2
| | | | llvm-svn: 236620
* Added missed symbol omp_in_final into include/module files.Andrey Churbanov2015-05-066-0/+28
| | | | llvm-svn: 236619
* [SelectionDAG] Delete SelectionDAGBuilder::removeValue. NFC.Sanjoy Das2015-05-061-6/+0
| | | | | | SelectionDAGBuilder::removeValue is dead now, after rL236563. llvm-svn: 236618
* Allow 0-weight branches in BranchProbabilityInfo.Diego Novillo2015-05-065-20/+26
| | | | | | | | | | | | | | | | | | | | | | | Summary: When computing branch weights in BPI, we used to disallow branches with weight 0. This is a minor nuisance, because a branch with weight 0 is different to "don't have information". In the context of instrumentation, it may mean "never executed", in the context of sampling, it means "never or seldom executed". In allowing 0 weight branches, I ran into issues with the switch expansion code in selection DAG. It is currently hardwired to not handle branches with weight 0. To maintain the current behaviour, I changed it to use 1 when it finds 0, but perhaps the algorithm needs changes to tolerate branches with weight zero. Reviewers: hansw Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D9533 llvm-svn: 236617
* ittnotify: change default notification mode to 3, which includes parallel ↵Andrey Churbanov2015-05-061-1/+1
| | | | | | regions, barriers + imbalance, loops, single regions reporting. llvm-svn: 236616
* Add missing dereferenceable_or_null gettersSanjoy Das2015-05-067-2/+50
| | | | | | | | | | | | | | | | | Summary: Add missing dereferenceable_or_null getters required for http://reviews.llvm.org/D9253 change. Separated from the D9253 review. Patch by Artur Pilipenko! Reviewers: sanjoy Reviewed By: sanjoy Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D9499 llvm-svn: 236615
* Restore TestRegisterVariables failure decorator for older ClangEd Maste2015-05-061-0/+1
| | | | | | | The @expectedFailureClang decorator was removed in r236447, but it seems to be fixed only with Clang 3.5+. llvm-svn: 236614
* [X86] Disable loop unrolling in loop vectorization pass when VF is 1.Wei Mi2015-05-0616-19/+64
| | | | | | | | | | | | | The patch disabled unrolling in loop vectorization pass when VF==1 on x86 architecture, by setting MaxInterleaveFactor to 1. Unrolling in loop vectorization pass may introduce the cost of overflow check, memory boundary check and extra prologue/epilogue code when regular unroller will unroll the loop another time. Disable it when VF==1 remove the unnecessary cost on x86. The same can be done for other platforms after verifying interleaving/memory bound checking to be not perf critical on those platforms. Differential Revision: http://reviews.llvm.org/D9515 llvm-svn: 236613
* Add ChangeTo* to MachineOperand for symbolsMatt Arsenault2015-05-062-0/+28
| | | | llvm-svn: 236612
* Add bitcode test to verify functions can be materialized out of order.Derek Schuff2015-05-061-0/+64
| | | | | | | | | | | | | | | | | | Summary: Adds test to check that when getLazyBitcodeModule is called: 1) Functions are not materailzed by default. 2) Only the requested function gets materialized (if no block addresses are used). Reviewers: jvoung, rafael Reviewed By: rafael Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D8907 llvm-svn: 236611
* Readd the regression test from r236584. Calling convention fixed to linux.Pawel Bylica2015-05-061-0/+51
| | | | llvm-svn: 236610
* [ARM] Fast-Isel was incorrectly selecting <2 x double> adds.Pete Cooper2015-05-062-0/+37
| | | | | | | | | | With neon enabled, we reach SelectBinaryFPOp and are able to get registers for a <2 x double> add. However, we shouldn't actually attempt arithmetic on it as ARMIselLowering says "v2f64 is legal so that QR subregs can be extracted as f64 elements, but neither Neon nor VFP support any arithmetic operations on it." This commit disables SelectBinaryFPOp for any vector types. There's already a FIXME to try handle neon. Doing so would require fixing this conditional which isn't safe for vectors 'VT == MVT::f64 || VT == MVT::i64' llvm-svn: 236609
* Fix implementation of normalize builtinTom Stellard2015-05-062-6/+152
| | | | | | | The new implementation was ported from the AMD builtin library and has been tested with piglit, OpenCV, and the ocl conformance tests. llvm-svn: 236608
* Simplify FuncUnwinders::GetEHFrameAugmentedUnwindPlanPavel Labath2015-05-062-29/+33
| | | | | | | | | | | | | | | | | Summary: GetEHFrameAugmentedUnwindPlan duplicated the work of GetEHFrameUnwindPlan in getting the original plan from DWARF CFI. This changes the function to call GetEHFrameUnwindPlan instead of doing all the work itself. A copy constructor is added to UnwindPlan to enable plan copying. Test Plan: No regressions on linux test suite. Reviewers: jasonmolenda, clayborg Subscribers: lldb-commits Differential Revision: http://reviews.llvm.org/D9369 llvm-svn: 236607
* [PPC64LE] Adjust vector splats during VSX swap optimizationBill Schmidt2015-05-062-7/+131
| | | | | | | | | | | | | | | | | | | | | | | | | | The initial code drop for VSX swap optimization permitted the optimization only when all operations in a web of related computation are lane-insensitive. For some lane-sensitive operations, we can still permit the optimization provided that we make adjustments to those operations. This patch adds special handling for vector splats so that their presence doesn't kill the optimization. Vector splats are lane-sensitive since they identify by number a vector element to be used as the source of a splat. When swap optimizations take place, the desired vector element will move to the opposite doubleword of the quadword vector. We thus replace the index I by (I + N/2) % N, where N is the number of elements in the vector. A new test case is added to test that swap optimization succeeds when vector splats are present, and that the proper input element is used as the source of the splat. An ancillary change removes SH_BUILDVEC as one of the kinds of special handling that may be required by VSX swap optimization. From experience with GCC, I had expected to need some modifications for vector build operations, but I did not find that to be the case. llvm-svn: 236606
* [AArch64] Advertise that the __sync_*_compare_and_swap_1/2/4/8 builtins workReid Kleckner2015-05-061-0/+6
| | | | | | | Fixes PR23428, where std::thread in libstdc++ would go haywire without these defines. llvm-svn: 236605
* clang-format: Merge labels and subsequent semicolons.Daniel Jasper2015-05-063-1/+13
| | | | | | | | | | | E.g.: default:; This can be used to get around restrictions as to what can follow a label. It fixes llvm.org/PR19648. llvm-svn: 236604
* clang-format: Allow ternary expressions inside template parameters ifDaniel Jasper2015-05-062-2/+9
| | | | | | | | the template parameters aren't inside an expression context. This fixes llvm.org/PR23270. llvm-svn: 236603
* clang-format: Consider operator precedence as penalty when breakingDaniel Jasper2015-05-062-0/+7
| | | | | | | | before operators. This fixes llvm.org/23382. llvm-svn: 236602
* Reformat.NAKAMURA Takumi2015-05-063-7/+6
| | | | llvm-svn: 236601
* Revert r236546, "propagate IR-level fast-math-flags to DAG nodes (NFC)"NAKAMURA Takumi2015-05-067-109/+99
| | | | | | It caused undefined behavior. llvm-svn: 236600
* clang-format: Accept slightly more record declarations.Daniel Jasper2015-05-062-28/+32
| | | | | | This fixes llvm.org/PR23397. llvm-svn: 236599
* clang-format: Fix bad wrapping of ObjC method exprs.Daniel Jasper2015-05-062-3/+10
| | | | | | | | | | | | | | | | | Before: [aaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaa: aaaaaaaa aaa:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa]; After: [aaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaa:aaaaaaaa aaa:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa]; Note that this might now violate the column limit and we probably need an alternative way of indenting these then. However, that is still strictly better than the messy formatting that clang-format did before. llvm-svn: 236598
* clang-format: Properly indent method calls without inputs.Daniel Jasper2015-05-062-2/+6
| | | | | | | | | | | | Before: [aaaaaaaaaaa aaaaaaa]; After: [aaaaaaaaaaa aaaaaaa]; llvm-svn: 236597
* [cmake] Remove two unused include pathsTobias Grosser2015-05-061-5/+0
| | | | | | | These include paths are leftovers from times when we used GMP or an external isl installation. They are not longer needed. llvm-svn: 236596
OpenPOWER on IntegriCloud