summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Made considerable updates to the documentation explaining how to add a new ↵Aaron Ballman2015-05-131-155/+267
| | | | | | attribute to clang. Cleans up some of the existing wording, as well as adding new information and better explanations. llvm-svn: 237268
* Silence Visual C++ warning C4189: 'Result' : local variable is initialized ↵Yaron Keren2015-05-131-2/+4
| | | | | | | | | but not referenced. Sadly, LLVM_ATTRIBUTE_UNUSED does nothing with Visual C++ which means we'll have to workaround such cases again and again. llvm-svn: 237267
* [Hexagon] Generate loop1 instruction for nested loopsBrendon Cahoon2015-05-132-56/+151
| | | | | | | | loop1 is for the outer loop and loop0 is for the inner loop. Differential Revision: http://reviews.llvm.org/D9680 llvm-svn: 237266
* Add function entry counts from sample profiles.Diego Novillo2015-05-133-0/+31
| | | | | | | | | | This patch uses the new function profile metadata "function_entry_count" to annotate entry counts from sample profiles. In a sampling profile, the total samples collected at the function entry are an approximation for the number of times that function was invoked. llvm-svn: 237265
* Implement std::experimental::sample.Evgeniy Stepanov2015-05-138-1/+391
| | | | | | | Following specification in "C++ Extensions for Library Fundamentals": http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/n4480.html#alg.random.sample llvm-svn: 237264
* clang-format: Improve nested block / lambda indentation when wrappingDaniel Jasper2015-05-132-0/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | before binary/ternary operators. Basically, it doesn't seem right to indent a nested block aligned to a binary or ternary operator. Before: int i = aaaaaa ? 1 // : [] { return 2; // }(); llvm::errs() << "number of twos is " << std::count_if(v.begin(), v.end(), [](int x) { return x == 2; // force break }); After: int i = aaaaaa ? 1 // : [] { return 2; // }(); llvm::errs() << "number of twos is " << std::count_if(v.begin(), v.end(), [](int x) { return x == 2; // force break }); llvm-svn: 237263
* [mips] [IAS] Preemptively fix warning introduced by r237255. NFC.Toma Tabacu2015-05-131-3/+6
| | | | | | | | | | | Some compilers warn about using the ternary operator with an unsigned variable and enum. I haven't seen this trigger in the llvm.org buildbots yet, but it probably will at some point. Reported by Daniel Sanders. llvm-svn: 237262
* Update ELFObjectWriter::reset() following r236255.Yaron Keren2015-05-131-0/+2
| | | | llvm-svn: 237261
* Add function entry count metadata.Diego Novillo2015-05-139-0/+146
| | | | | | | | | | | | | | | | | | | | Summary: This adds three Function methods to handle function entry counts: setEntryCount() and getEntryCount(). Entry counts are stored under the MD_prof metadata node with the name "function_entry_count". They are unsigned 64 bit values set by profilers (instrumentation and sample profiler changes coming up). Added documentation for new profile metadata and tests. Reviewers: dexonsmith, bogner Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D9628 llvm-svn: 237260
* Test commit: Remove unnecessary spaces.Teresa Johnson2015-05-131-1/+1
| | | | llvm-svn: 237259
* [Hexagon] Generate hardware loop when loop has a critical edgeBrendon Cahoon2015-05-132-13/+95
| | | | | | | | | The hardware loop pass should try to generate a hardware loop instruction when the original loop has a critical edge. Differential Revision: http://reviews.llvm.org/D9678 llvm-svn: 237258
* [mips][microMIPSr6] Implement CLO and CLZ instructionsJozef Kolek2015-05-135-3/+51
| | | | | | | | This patch implements CLO and CLZ instructions using mapping. Differential Revision: http://reviews.llvm.org/D8553 llvm-svn: 237257
* Revert r237247 - [AArch64] Codegen VMAX/VMIN.. as it is causing failures in ↵Silviu Baranga2015-05-133-94/+44
| | | | | | SPEC2000/2006 llvm-svn: 237256
* [mips] [IAS] Unify common functionality of LA and LI.Toma Tabacu2015-05-134-90/+92
| | | | | | | | | | | | | | Summary: A side-effect of this is that LA gains proper handling of unsigned and positive signed 16-bit immediates and more accurate error messages. Reviewers: dsanders Reviewed By: dsanders Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D9290 llvm-svn: 237255
* Removed mentioning of OpenMP as unsupported feature (patch2 from A.Bokhanko)Andrey Churbanov2015-05-131-3/+1
| | | | llvm-svn: 237253
* Update isl to 9f767f1766a0Tobias Grosser2015-05-1310-119/+104
| | | | | | | | This fixes a bug in the isl scheduler (http://llvm.org/PR21934) Otherwise mostly minor changes. llvm-svn: 237250
* clang-format: Fix incorrect */& classification.Daniel Jasper2015-05-132-0/+5
| | | | | | | | | | Before: void f() { f(new a(), c *d); } After: void f() { f(new a(), c * d); } llvm-svn: 237249
* Refactor lldb-mi's promptIlia K2015-05-136-23/+33
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: This patch fixes/cleans code around of (gdb) prompt: # Add CMICmnStreamStdout::WritePrompt # Clean up CMICmnStreamStdout::TextToStdout (don't lock the m_mutex twice because it will be locked in CMICmnStreamStdout::WritePriv) # Remove unused CMICmnStreamStdin::m_bShowPrompt field # Refactor CMICmnLLDBDebuggerHandleEvents to use CMICmnStreamStdout::WritePrompt instead of TextToStdout("(gdb)") # Refactor CMIDriver to use CMICmnStreamStdout::WritePrompt instead of ``` if (bOk && m_rStdin.GetEnablePrompt()) bOk = m_rStdOut.WriteMIResponse(m_rStdin.GetPrompt()); ``` Test Plan: ./dotest.py -v --executable $BUILDDIR/bin/lldb tools/lldb-mi/ Reviewers: abidh Reviewed By: abidh Subscribers: lldb-commits, abidh Differential Revision: http://reviews.llvm.org/D9737 llvm-svn: 237248
* [AArch64] Codegen VMAX/VMIN for safe math casesArtyom Skrobov2015-05-133-44/+94
| | | | llvm-svn: 237247
* clang-format: Fix semicolon less macro-detection.Daniel Jasper2015-05-132-5/+13
| | | | | | | | | | | | | | It was fooled by the comment. Before: SOME_UNRELATED_MACRO /*static*/ int i; After: SOME_UNRELATED_MACRO /*static*/ int i; llvm-svn: 237246
* Reverting r237234, "Use std::bitset for SubtargetFeatures"Michael Kuperstein2015-05-1337-1068/+1021
| | | | | | | The buildbots are still not satisfied. MIPS and ARM are failing (even though at least MIPS was expected to pass). llvm-svn: 237245
* clang-format: [ObjC] Further improve wrapping of methods calls without inputs.Daniel Jasper2015-05-132-1/+4
| | | | | | | | | | | | Before: [aaaaaaaaaaaaaaaaaaaaaaa .aaaaaaaa[aaaaaaaaaaaaaaaaaaaaa] aaaaaaaaaaaaaaaaaaaaaa]; After: [aaaaaaaaaaaaaaaaaaaaaaa.aaaaaaaa[aaaaaaaaaaaaaaaaaaaaa] aaaaaaaaaaaaaaaaaaaaaa]; llvm-svn: 237244
* [OPENMP] Fixed codegen for firstprivate variables, also marked as lastprivate.Alexey Bataev2015-05-132-11/+51
| | | | | | In some rare cases shared copies of lastprivate/firstprivate variables were not updated after the loop directive. llvm-svn: 237243
* [mips] [IAS] Merge the micromips-expressions.s test into expr1.s. NFC.Toma Tabacu2015-05-132-49/+32
| | | | | | | | | | | | | | Summary: Also did some minor reformatting in the resulting test. Reviewers: dsanders Reviewed By: dsanders Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D9702 llvm-svn: 237242
* clang-format: [ObjC] Make IndentWrappedFunctionNames work with ObjC functionsDaniel Jasper2015-05-132-2/+24
| | | | llvm-svn: 237241
* Fix arm instruction emulation of add (imm) and sub (imm)Tamas Berghammer2015-05-131-35/+48
| | | | | | Differential revision: http://reviews.llvm.org/D9704 llvm-svn: 237240
* Remote Non-Stop SupportEwan Crawford2015-05-1310-8/+128
| | | | | | | | | | | | | | | | | | | | Summary: This patch is the beginnings of support for Non-stop mode in the remote protocol. Letting a user examine stopped threads, while other threads execute freely. Non-stop mode is enabled using the setting target.non-stop-mode, which sends a QNonStop packet when establishing the remote connection. Changes are also made to treat the '?' stop reply packet differently in non-stop mode, according to spec https://sourceware.org/gdb/current/onlinedocs/gdb/Remote-Non_002dStop.html#Remote-Non_002dStop. A setting for querying the remote for default thread on setup is also included. Handling of '%' async notification packets will be added next. Reviewers: clayborg Subscribers: lldb-commits, ADodds, ted, deepak2427 Differential Revision: http://reviews.llvm.org/D9656 llvm-svn: 237239
* Fix a few compile warningsIlia K2015-05-132-2/+2
| | | | llvm-svn: 237238
* [DebugInfo] Debug locations for constant SD nodesSergey Dmitrouk2015-05-139-52/+242
| | | | | | | | | | | | | | | | | | | | | Several updates for [DebugInfo] Add debug locations to constant SD nodes (r235989). Includes: * re-enabling the change (disabled recently); * missing change for FP constants; * resetting debug location of constant node if it's used more than at one place to prevent emission of wrong locations in case of coalesced constants; * a couple of additional tests. Now all look ups in CSEMap are wrapped by additional method. Comment in D9084 suggests that debug locations aren't useful for "target constants", so there might be one more change related to this API (namely, dropping debug locations for getTarget*Constant methods). Differential Revision: http://reviews.llvm.org/D9604 llvm-svn: 237237
* clang-format: Prefer formatting local lambdas like functions.Daniel Jasper2015-05-132-0/+6
| | | | | | | | | | | | | Before: auto my_lambda = [](const string &some_parameter) { return some_parameter.size(); }; After: auto my_lambda = [](const string &some_parameter) { return some_parameter.size(); }; llvm-svn: 237235
* Use std::bitset for SubtargetFeaturesMichael Kuperstein2015-05-1337-1021/+1068
| | | | | | | | | | | Previously, subtarget features were a bitfield with the underlying type being uint64_t. Since several targets (X86 and ARM, in particular) have hit or were very close to hitting this bound, switching the features to use a bitset. No functional change. The first two times this was committed (r229831, r233055), it caused several buildbot failures. At least some of the ARM and MIPS ones were due to gcc/binutils issues, and should now be fixed. llvm-svn: 237234
* clang-format: Support column layout with comment after {.Daniel Jasper2015-05-132-4/+12
| | | | | | | | | | | | | | | | Before: vector<int> iiiiiiiiiiiiiii = { // 1111111111, 2222222222, 33333333333, 4444444444, // 111111111, 222222222, 3333333333, 444444444, // 11111111, 22222222, 333333333, 44444444}; After: vector<int> iiiiiiiiiiiiiii = { // 1111111111, 2222222222, 33333333333, 4444444444, // 111111111, 222222222, 3333333333, 444444444, // 11111111, 22222222, 333333333, 44444444}; llvm-svn: 237233
* AVX-512: fixed a bug in encoding of VPSRAQ instrcution,Elena Demikhovsky2015-05-132-2/+915
| | | | | | added a bunch of encoding tests. llvm-svn: 237232
* Use ArrayRef::slice instead of manually constructing an ArrayRef from ↵Craig Topper2015-05-131-6/+1
| | | | | | ArrayRef iterators. NFC llvm-svn: 237231
* Darwin - fix intermitent crashes in import crashinfoVince Harron2015-05-132-3/+39
| | | | | | | | | | | | | | | | Summary: "import crashinfo" was probably failing because multiple dotest invocations are all trying to compile crashinfo.so at the same time. I've put a mutex around the compile step to prevent this. Reviewers: clayborg, chying Subscribers: lldb-commits Differential Revision: http://reviews.llvm.org/D9732 llvm-svn: 237230
* Use a more accurate implementation for expTom Stellard2015-05-132-13/+85
| | | | | | | | | | | | Using exp2(x * M_LOG2E_F) does not give us accurate enough results for OpenCL. If you look at the new exp implementation you'll see that it does multiply the input by M_LOG2E_F, but it still uses the original input in part of the calculation. This exp implementation was ported from the AMD builtin library and has been tested with piglit, OpenCV, and the ocl conformance tests. llvm-svn: 237229
* Implement exp2 using OpenCL C rather than using an intrinsicTom Stellard2015-05-138-6/+303
| | | | | | | | | | Not all targets support the intrinsic, so it's better to have a generic implementation which does not use it. This exp2 implementation was ported from the AMD builtin library and has been tested with piglit, OpenCV, and the ocl conformance tests. llvm-svn: 237228
* Constify arguments to methods in LICM. NFCPete Cooper2015-05-131-25/+33
| | | | llvm-svn: 237227
* Change LoadAndStorePromoter to take ArrayRef instead of SmallVectorImpl&.Pete Cooper2015-05-135-9/+13
| | | | | | | | | | The array passed to LoadAndStorePromoter's constructor was a constant reference to a SmallVectorImpl, which is just the same as passing an ArrayRef. Also, the data in the array can be 'const Instruction*' instead of 'Instruction*'. Its not possible to convert a SmallVectorImpl<T*> to SmallVectorImpl<const T*>, but ArrayRef does provide such a method. Currently this added calls to makeArrayRef which should be a nop, but i'm going to kick off a discussion about improving ArrayRef to not need these. llvm-svn: 237226
* Constify arguments in AliasSetTracker methods. NFCPete Cooper2015-05-132-8/+10
| | | | llvm-svn: 237225
* Change a loop in LoopInfo to foreach. NFCPete Cooper2015-05-131-2/+2
| | | | llvm-svn: 237224
* Constify arguments to methods in LoopInfo. NFCPete Cooper2015-05-132-5/+5
| | | | llvm-svn: 237223
* [LLD] Properly relocate the LSDA field of MachO eh-frames.Lang Hames2015-05-132-40/+260
| | | | | | | Previously the LSDA field was not being relocated during linking, leading to failures for some EH tests. llvm-svn: 237222
* Don't change the selected platform when creating the dummy target.Robert Flack2015-05-131-2/+2
| | | | | | | | | | | | | | | | | | | A dummy target is used by TargetList::CreateTargetInternal to prime newly created targets. the first time this is done it creates the dummy target. The dummy target is created with the host platform (See TargetList::CreateDummyTarget) which results in switching the selected platform back to the host platform even when creating a target for a different platform. This change avoids changing the selected platform while creating the dummy target to prevent this side effect. Test Plan: ./dotest.py $DOTEST_OPTS -t -p TestCreateAfterAttach.py Tests using process attach (e.g. TestCreateAfterAttach.py, TestHelloWorld.py) now run successfully mac -> linux. Differential Revision: http://reviews.llvm.org/D9712 llvm-svn: 237221
* [PlaceSafepoints] Reduce dominator tree recalculationPhilip Reames2015-05-131-42/+24
| | | | | | | | | | Reduce recalculation of the dominator tree by identifying all sites that will need a safepoint poll before doing any of the insertion. This allows us to invalidate the dominator info once, rather than once per safepoint poll inserted. While I'm at it, update findLocationForEntrySafepoint to properly update the dom tree now that the interface has been made easy. When first written, it wasn't per comment in the code. Differential Revision: http://reviews.llvm.org/D9727 llvm-svn: 237220
* [LLD] Add support for MachO ripRel32MinusNAnon relocations.Lang Hames2015-05-132-5/+87
| | | | llvm-svn: 237219
* Fixed a ton of gcc compile warningsVince Harron2015-05-1333-115/+111
| | | | | | | | | | Removed some unused variables, added some consts, changed some casts to const_cast. I don't think any of these changes are very controversial. Differential Revision: http://reviews.llvm.org/D9674 llvm-svn: 237218
* [LLD] Add a mutex to prevent concurrent modification of the dylib maps inLang Hames2015-05-132-0/+2
| | | | | | MachOLinkingContext. llvm-svn: 237217
* [SLSR] handles non-canonicalized Mul candidatesJingyue Wu2015-05-132-2/+23
| | | | | | | | such as (2 + B) * S. Tested by @non_canonicalized in slsr-mul.ll llvm-svn: 237216
* [Statepoints] Support for "patchable" statepoints.Sanjoy Das2015-05-1253-368/+504
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: This change adds two new parameters to the statepoint intrinsic, `i64 id` and `i32 num_patch_bytes`. `id` gets propagated to the ID field in the generated StackMap section. If the `num_patch_bytes` is non-zero then the statepoint is lowered to `num_patch_bytes` bytes of nops instead of a call (the spill and reload code remains unchanged). A non-zero `num_patch_bytes` is useful in situations where a language runtime requires complete control over how a call is lowered. This change brings statepoints one step closer to patchpoints. With some additional work (that is not part of this patch) it should be possible to get rid of `TargetOpcode::STATEPOINT` altogether. PlaceSafepoints generates `statepoint` wrappers with `id` set to `0xABCDEF00` (the old default value for the ID reported in the stackmap) and `num_patch_bytes` set to `0`. This can be made more sophisticated later. Reviewers: reames, pgavlin, swaroop.sridhar, AndyAyers Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D9546 llvm-svn: 237214
OpenPOWER on IntegriCloud