summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* [InstCombine] shrink switch conditions better (PR24766)Sanjay Patel2016-06-303-47/+28
| | | | | | | | | | | | | | https://llvm.org/bugs/show_bug.cgi?id=24766#c2 This removes a hack that was added for the benefit of x86 codegen. It prevented shrinking the switch condition even to smaller legal (DataLayout) types. We have a safety mechanism in CGP after: http://reviews.llvm.org/rL251857 ...so we're free to use the optimal (smallest) IR type now. Differential Revision: http://reviews.llvm.org/D12965 llvm-svn: 274233
* Test commitElliot Colp2016-06-301-1/+1
| | | | llvm-svn: 274232
* [compiler-rt] Reset global variables in ThreadRegistryThreadedTestEtienne Bergeron2016-06-301-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: The unittest 'ThreadRegistryThreadedTest' is failing when running in loop. There are global variables that need to be cleared. To repro: ``` projects\compiler-rt\lib\sanitizer_common\tests\Release\Sanitizer-x86_64-Test.exe --gtest_filter=SanitizerCommon.ThreadRegistryThreadedTest --gtest_repeat=2 ``` Output: ``` Repeating all tests (iteration 1) . . . Note: Google Test filter = SanitizerCommon.ThreadRegistryThreadedTest [==========] Running 1 test from 1 test case. [----------] Global test environment set-up. [----------] 1 test from SanitizerCommon [ RUN ] SanitizerCommon.ThreadRegistryThreadedTest [ OK ] SanitizerCommon.ThreadRegistryThreadedTest (1 ms) [----------] 1 test from SanitizerCommon (1 ms total) [----------] Global test environment tear-down [==========] 1 test from 1 test case ran. (2 ms total) [ PASSED ] 1 test. Repeating all tests (iteration 2) . . . Note: Google Test filter = SanitizerCommon.ThreadRegistryThreadedTest [==========] Running 1 test from 1 test case. [----------] Global test environment set-up. [----------] 1 test from SanitizerCommon [ RUN ] SanitizerCommon.ThreadRegistryThreadedTest C:/src/llvm/llvm/projects/compiler-rt/lib/sanitizer_common/tests/sanitizer_thread_registry_test.cc(216): error: Value of: num_created[0] Actual: 2 Expected: 1 C:/src/llvm/llvm/projects/compiler-rt/lib/sanitizer_common/tests/sanitizer_thread_registry_test.cc(217): error: Value of: num_started[0] Actual: 2 Expected: 1 C:/src/llvm/llvm/projects/compiler-rt/lib/sanitizer_common/tests/sanitizer_thread_registry_test.cc(220): error: Value of: num_created[i] [...] [ FAILED ] SanitizerCommon.ThreadRegistryThreadedTest (294 ms) [----------] 1 test from SanitizerCommon (294 ms total) [----------] Global test environment tear-down [==========] 1 test from 1 test case ran. (299 ms total) [ PASSED ] 0 tests. [ FAILED ] 1 test, listed below: [ FAILED ] SanitizerCommon.ThreadRegistryThreadedTest 1 FAILED TEST ``` Reviewers: rnk Subscribers: llvm-commits, wang0109, kubabrecka, chrisha Differential Revision: http://reviews.llvm.org/D21886 llvm-svn: 274231
* [compiler-rt] Fix broken unittest using alloca on MSVC.Etienne Bergeron2016-06-301-1/+8
| | | | | | | | | | | | | | | | | Summary: The alloca header is not present on windows. This test was committed recently: http://reviews.llvm.org/D21509 http://reviews.llvm.org/rL273889 Reviewers: rnk Subscribers: llvm-commits, wang0109, chrisha, kubabrecka Differential Revision: http://reviews.llvm.org/D21864 llvm-svn: 274230
* [InstCombine] use ConstantExpr::getBitCast() instead of creating useless ↵Sanjay Patel2016-06-301-2/+1
| | | | | | instruction llvm-svn: 274229
* [InstCombine] extend matchSelectFromAndOr() to work with i1 scalar typesSanjay Patel2016-06-302-29/+36
| | | | | | | | If the incoming types are i1, then we don't have to pattern match any sext ops. Differential Revision: http://reviews.llvm.org/D21740 llvm-svn: 274228
* [CMake] -fmodules-local-submodule-visibility is a cc1-only option.Vassil Vassilev2016-06-301-2/+2
| | | | | | This should fix modules builds on platforms other than Darwin after r274196. llvm-svn: 274227
* Don't repeat names in comments. NFC.Rafael Espindola2016-06-301-4/+3
| | | | llvm-svn: 274226
* Delete unused includes. NFC.Rafael Espindola2016-06-3019-18/+1
| | | | llvm-svn: 274225
* [AVX512][BUILTIN][vpermilps][intrinsics] Fixing two incorrect IMM check.Michael Zuckerman2016-06-301-3/+3
| | | | | | Differential Revision: http://reviews.llvm.org/D21836 llvm-svn: 274224
* Fix CodeGenCXX/mangle-abi-tag.cpp on clang-ppc64le-linux botDmitry Polukhin2016-06-301-5/+6
| | | | llvm-svn: 274223
* [GCC] PR23529 Mangler part of attrbute abi_tag supportDmitry Polukhin2016-06-305-96/+613
| | | | | | | | | | | | | | | | | Original patch by Stefan Bühler http://reviews.llvm.org/D12834 Difference between original and this one: - fixed all failing tests - fixed mangling for global variable outside namespace - emit ABI tags for guards and local names - clang-format + other stylistic changes - significantly reworked patch according to Richard's suggestions Sema part, committed before http://reviews.llvm.org/D17567 Differential revision: http://reviews.llvm.org/D18035 llvm-svn: 274222
* Enable opencl driver tests, which never ran.Benjamin Kramer2016-06-302-1/+2
| | | | | | | Then mark it as XFAIL because it always fails. I'll let OpenCL people figure this out. llvm-svn: 274221
* AMDGPU: Set amdgpu_kernel calling convention for OpenCL kernels.Nikolay Haustov2016-06-3015-20/+79
| | | | | | | | | | | | | | | | | | Summary: Summary: Change Clang calling convention SpirKernel to OpenCLKernel. Set calling convention OpenCLKernel for amdgcn as well. Add virtual method .getOpenCLKernelCallingConv() to TargetCodeGenInfo and use it to set target calling convention for AMDGPU and SPIR. Update tests. Reviewers: rsmith, tstellarAMD, Anastasia, yaxunl Subscribers: kzhuravl, cfe-commits Differential Revision: http://reviews.llvm.org/D21367 llvm-svn: 274220
* Do not allow "--" with single-letter options.Rui Ueyama2016-06-301-21/+21
| | | | | | | | In general, we accept both -foo and --foo as command line options, but if an option is a single letter option, we don't want to allow double dashes because GNU linkers don't accept such combination. llvm-svn: 274219
* [Clang][Intrinsics][AVX512][BuiltIn] adding intrinsics for vrangesd ↵Michael Zuckerman2016-06-302-0/+48
| | | | | | | | instruction set Differential Revision: http://reviews.llvm.org/D21734 llvm-svn: 274218
* [ASTMatcher] Add a node matcher for EnumType.Haojian Wu2016-06-304-0/+38
| | | | | | | | | | Reviewers: aaron.ballman Subscribers: cfe-commits, klimek Differential Revision: http://reviews.llvm.org/D21860 llvm-svn: 274217
* [SystemZ] Let z13 also support FeatureMiscellaneousExtensions.Jonas Paulsson2016-06-302-1/+2
| | | | | | | | | | | This processor feature had been left out by mistake from the z13 ProcessorModel. This time with updated test case. Thanks, Hans. Reviewed by Ulrich Weigand. llvm-svn: 274216
* Correct watchpoint size test failure on certain devicesOmair Javaid2016-06-301-3/+3
| | | | | | | I overlooked the possibility of certain targets translating increment statement into a read and write. In this case we replace increment statement with an assignment. llvm-svn: 274215
* Update status of already completed Oulu issues.Eric Fiselier2016-06-301-15/+15
| | | | | | | | | | | | | | | | | | | | | | * P0163r0: Implemented in r273839. * LWG 2309: pthread_mutex_lock only returns this error if certain debug flags were passed during construction. libc++ does not pass these flags. There is nothing to do. * LWG 2310: Wording fix. No impact on libc++'s implementation. * LWG 2312: libc++'s std::tuple implementation already constrains the overloads based on the number of arguments. * LWG 2549: libc++'s std::tuple already applied this fix. * LWG 2674: libc++ already depends on this relaxed wording. * LWG 2704, 2706, 2707, 2719, 2720, 2721, 2723, 2725, 2728: All of these filesystem were either submitted by me and fixed before submission, or have already been applied. llvm-svn: 274214
* [AArch64] Add Broadcom Vulcan scheduling model.Pankaj Gode2016-06-303-4/+863
| | | | | | | | Adding scheduling model for new Broadcom Vulcan core (ARMv8.1A). Differential Revision: http://reviews.llvm.org/D21728 llvm-svn: 274213
* [cmake] Remove stale comment. NFC.Michael Gottesman2016-06-301-4/+0
| | | | llvm-svn: 274212
* Make futures.overview enum tests more portable. Patch from STL@microsoft.comEric Fiselier2016-06-302-9/+16
| | | | llvm-svn: 274211
* Make std::array typedef tests more portable.Eric Fiselier2016-06-301-4/+25
| | | | llvm-svn: 274210
* Fix ::reference typedef in insert iterators.Eric Fiselier2016-06-304-12/+12
| | | | | | | | | | | | Since at least the C++11 standard insert iterators are specified as having ::reference typedef void. Libc++ was not doing that. This patch corrects the typedef. This patch changes the std::iterator base class of insert_iterator, front_insert_iterator and back_insert_iterator. This should not be an ABI breaking change. llvm-svn: 274209
* Use ShuffleVectorSDNode::isSplat member method instead of static method ↵Craig Topper2016-06-302-3/+2
| | | | | | isSplatMask where the mask came directly from getMask() on a shuffle node. llvm-svn: 274208
* Make instreambuf.iterator/types.pass.cpp more portable.Eric Fiselier2016-06-301-6/+12
| | | | llvm-svn: 274207
* Fix use of terse static assert. Patch from STL@microsoft.comEric Fiselier2016-06-301-1/+1
| | | | llvm-svn: 274206
* Fix unary_function inheritance assumption. Patch from STL@microsoft.comEric Fiselier2016-06-301-2/+2
| | | | llvm-svn: 274205
* Fix unreferenced parameter warning. Patch from STL@microsoft.comEric Fiselier2016-06-301-1/+1
| | | | llvm-svn: 274204
* Avoid applying unary minus to unsigned integers. Patch from STL@microsoft.comEric Fiselier2016-06-302-8/+8
| | | | llvm-svn: 274203
* [MS ABI] Pick an inheritance model if we resolve an overload setDavid Majnemer2016-06-302-0/+19
| | | | | | | | | | | | | We didn't assign an inheritance model for 'Foo' if the event an exrepssion like '&Foo::Bar' occured if 'Bar' could resolve to multiple functions. Once the overload set is resolved to a particular member, we enforce a specific inheritance model. This fixes PR28360. llvm-svn: 274202
* [CodeView] Implement support for bitfields in ClangDavid Majnemer2016-06-304-41/+77
| | | | | | | | | | | Emit the underlying storage offset in addition to the starting bit position of the field. This fixes PR28162. Differential Revision: http://reviews.llvm.org/D21783 llvm-svn: 274201
* [CodeView] Implement support for bitfields in LLVMDavid Majnemer2016-06-306-11/+272
| | | | | | | | | | | | | CodeView need to know the offset of the storage allocation for a bitfield. Encode this via the "extraData" field in DIDerivedType and introduced a new flag, DIFlagBitField, to indicate whether or not a member is a bitfield. This fixes PR28162. Differential Revision: http://reviews.llvm.org/D21782 llvm-svn: 274200
* [SCEV] Compute max be count from shift operator only if all else failsSanjoy Das2016-06-302-6/+35
| | | | | | | In particular, check to see if we can compute a precise trip count by exhaustively simulating the loop first. llvm-svn: 274199
* [ADT] Add a new data structure for managing a priority worklist whereChandler Carruth2016-06-303-0/+331
| | | | | | | | | | | | | | | | | | | | | | | | re-insertion of entries into the worklist moves them to the end. This is fairly similar to a SetVector, but helps in the case where in addition to not inserting duplicates you want to adjust the sequence of a pop-off-the-back worklist. I'm not at all attached to the name of this data structure if others have better suggestions, but this is one that David Majnemer brought up in IRC discussions that seems plausible. I've trimmed the interface down somewhat from SetVector's interface because several things make less sense here IMO: iteration primarily. I'd prefer to add these back as we have users that need them. My use case doesn't even need all of what is provided here. =] I've also included a basic unittest to make sure this functions reasonably. Differential Revision: http://reviews.llvm.org/D21866 llvm-svn: 274198
* [CFLAA] Add support for ModRef queries.George Burgess IV2016-06-303-0/+83
| | | | | | | | | | | | This patch makes CFLAA answer some ModRef queries. Because we don't distinguish between reading/writing when making StratifiedSets, we're unable to offer any of the readonly-related answers. Patch by Jia Chen. Differential Revision: http://reviews.llvm.org/D21858 llvm-svn: 274197
* [CMake] Introduce a LLVM_ENABLE_LOCAL_SUBMODULE_VISIBILITY flag.Adrian Prantl2016-06-302-2/+16
| | | | | | | | | | | | | On Darwin it is currently impossible to build LLVM with modules because the Darwin system module map is not compatible with -fmodules-local-submodule-visibility at this point in time. This patch makes the flag optional and off by default on Darwin so it becomes possible to build LLVM with modules again. http://reviews.llvm.org/D21827 rdar://problem/27019000 llvm-svn: 274196
* Fix logic error in check() function.Peter Collingbourne2016-06-301-1/+1
| | | | llvm-svn: 274195
* RegisterScavenging: Code cleanup; NFCMatthias Braun2016-06-302-44/+31
| | | | | | | | | | | | | - Use range based for loops - No need for some !Reg checks: isPhysicalRegister() reports false for NoRegister anyway - Do not repeat function name in documentation comment. - Do not repeat documentation comment in implementation when we already have one at the declaration. - Factor some common subexpressions out. - Change file comments to use doxygen syntax. llvm-svn: 274194
* CodeGen: Add an explicit BuildMI overload for MachineInstr&Duncan P. N. Exon Smith2016-06-301-7/+17
| | | | | | | | | | | | | | | | | | | | | Add an explicit overload to BuildMI for MachineInstr& to deal with insertions inside of instruction bundles. - Use it to re-implement MachineInstr* to give it coverage. - Document how the overload for MachineBasicBlock::instr_iterator differs from that for MachineBasicBlock::iterator (the previous (implicit) overload for MachineInstr&). - Add a comment explaining why the MachineInstr& and MachineInstr* overloads don't universally forward to the MachineBasicBlock::instr_iterator overload. Thanks to Justin for noticing the API quirk. While this doesn't fix any known bugs -- all uses of BuildMI with a MachineInstr& were previously using MachineBasicBlock::iterator -- it protects against future bugs. llvm-svn: 274193
* add vector tests to show missing transformSanjay Patel2016-06-301-0/+38
| | | | llvm-svn: 274192
* [SystemZ] Split up PerformDAGCombine. [NFC]Marcin Koscielnicki2016-06-302-142/+183
| | | | | | This function is already a bit too long, and I'm about to make it worse. llvm-svn: 274191
* Use the same type for adjacent bit field members.Akira Hatanaka2016-06-301-4/+4
| | | | | | | | | MSVC doesn't pack the bit field members if different types are used. This came up in a patch review. http://lists.llvm.org/pipermail/cfe-commits/Week-of-Mon-20160627/163107.html llvm-svn: 274190
* CodeGen: Use MachineInstr& in TargetInstrInfo, NFCDuncan P. N. Exon Smith2016-06-3092-3331/+3286
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is mostly a mechanical change to make TargetInstrInfo API take MachineInstr& (instead of MachineInstr* or MachineBasicBlock::iterator) when the argument is expected to be a valid MachineInstr. This is a general API improvement. Although it would be possible to do this one function at a time, that would demand a quadratic amount of churn since many of these functions call each other. Instead I've done everything as a block and just updated what was necessary. This is mostly mechanical fixes: adding and removing `*` and `&` operators. The only non-mechanical change is to split ARMBaseInstrInfo::getOperandLatencyImpl out from ARMBaseInstrInfo::getOperandLatency. Previously, the latter took a `MachineInstr*` which it updated to the instruction bundle leader; now, the latter calls the former either with the same `MachineInstr&` or the bundle leader. As a side effect, this removes a bunch of MachineInstr* to MachineBasicBlock::iterator implicit conversions, a necessary step toward fixing PR26753. Note: I updated WebAssembly, Lanai, and AVR (despite being off-by-default) since it turned out to be easy. I couldn't run tests for AVR since llc doesn't link with it turned on. llvm-svn: 274189
* regenerate checksSanjay Patel2016-06-291-27/+75
| | | | llvm-svn: 274188
* PrologEpilogInserter: Some code cleanup; NFCMatthias Braun2016-06-291-40/+36
| | | | | | | | | - Use range based for - Use the more common variable names MBB and MF for MachineBasicBlock/MachineFunction variables. - Add a few const modifiers llvm-svn: 274187
* Add move constructor and move assignment to fix MSVC build.Peter Collingbourne2016-06-291-0/+11
| | | | llvm-svn: 274186
* [Tooling] Add optional argument to getFullyQualifiedName to prepend "::".Siva Chandra2016-06-293-49/+137
| | | | | | | | | | Reviewers: rsmith, saugustine, rnk Subscribers: klimek, cfe-commits Differential Revision: http://reviews.llvm.org/D21666 llvm-svn: 274185
* COFF: Switch to new archive writer interface (D21721).Peter Collingbourne2016-06-293-28/+31
| | | | | | Differential Revision: http://reviews.llvm.org/D21722 llvm-svn: 274184
OpenPOWER on IntegriCloud