summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* [InstCombine] [NFC] Add more tests for getting rid of select of bittest ↵Roman Lebedev2018-04-051-19/+178
| | | | | | | | | | | | | | | | | | | (D45108, PR36950 / PR17564) Summary: More tests for D45108: * One use tests * allow shift to be a variable, too Reviewers: spatel, craig.topper Reviewed By: spatel Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D45329 llvm-svn: 329348
* [X86] Add LEAVE instruction to the scheduler models using the same data as ↵Craig Topper2018-04-057-29/+23
| | | | | | | | | | LEAVE64. Make LEAVE/LEAVE64 more correct on Sandy Bridge. This is the 32-bit mode version of LEAVE64. It should be at least somewhat similar to LEAVE64. The Sandy Bridge version was missing a load port use. llvm-svn: 329347
* [Sema] Fix some Clang-tidy modernize and Include What You Use warnings; ↵Eugene Zelenko2018-04-058-228/+384
| | | | | | other minor fixes (NFC). llvm-svn: 329346
* [DWARF v5][NFC]: Refactor DebugRnglists to prepare for the support of the ↵Wolfgang Pieb2018-04-053-119/+169
| | | | | | | | | | | | DW_AT_ranges attribute in conjunction with .debug_rnglists. Reviewers: JDevlieghere Differential Revision: https://reviews.llvm.org/D45307 llvm-svn: 329345
* [X86][SSE] Add floating point add/mul fast-math vector.reduce testsSimon Pilgrim2018-04-052-0/+2013
| | | | | | Strict versions aren't working at all (PR36732) and the accumulators aren't supported (PR36734) llvm-svn: 329344
* [X86][SSE] Add floating point min/max vector.reduce testsSimon Pilgrim2018-04-054-0/+1336
| | | | llvm-svn: 329343
* PR36992: do not store beyond the dsize of a class object unless we knowRichard Smith2018-04-0516-115/+260
| | | | | | | | | | | | | | the tail padding is not reused. We track on the AggValueSlot (and through a couple of other initialization actions) whether we're dealing with an object that might share its tail padding with some other object, so that we can avoid emitting stores into the tail padding if that's the case. We still widen stores into tail padding when we can do so. Differential Revision: https://reviews.llvm.org/D45306 llvm-svn: 329342
* AMDGPU/Metadata: Always report a fixed number of hidden argumentsKonstantin Zhuravlyov2018-04-053-9/+82
| | | | | | | | | | Currently it is 6. If the "feature" was not used, report dummy hidden argument. Otherwise it does not match the kernarg size reported in the kernel header. Differential Revision: https://reviews.llvm.org/D45129 llvm-svn: 329341
* [cmake] Remove duplicate command line options from buildAaron Smith2018-04-051-2/+2
| | | | | | | | | | | | | CMAKE_CXX_FLAGS and CMAKE_C_FLAGS are added twice to the command line. This causes the command line options to be doubled which works until it doesn't as not all options can be specified twice. For example, clang-cl foo.c /GS- /GS- -mllvm -small-loop-cost=1 -mllvm -small-loop-cost=1 clang (LLVM option parsing): for the -small-loop-cost option: may only occur zero or one times! llvm-svn: 329340
* [X86] Remove some InstRWs for plain store instructions on Sandy Bridge.Craig Topper2018-04-0518-201/+165
| | | | | | We were forcing the latency of these instructions to 5 cycles, but every other scheduler model had them as 1 cycle. I'm sure I didn't get everything, but this gets a big portion. llvm-svn: 329339
* [llvm-cov] Prevent llvm-cov from hanging when a symblink doesn't exist.Max Moroz2018-04-053-50/+106
| | | | | | | | | | | | | | | | | | | | Summary: Previous code hangs indefinitely when trying to iterate through a symbol link file that points to an non-exist directory. This change fixes the bug to make the addCollectedPath function exit ealier and print out correct warning messages. Patch by Yuke Liao (@liaoyuke). Reviewers: Dor1s, vsk Reviewed By: vsk Subscribers: bruno, mgrang, llvm-commits Differential Revision: https://reviews.llvm.org/D44960 llvm-svn: 329338
* [WebAssembly] Remove StackPointerGlobal member variable from the driver.Rui Ueyama2018-04-051-5/+5
| | | | | | | | | Since InputGlobal makes a copy of a given object, we can use a temporary object allocated on the stack here. Differential Revision: https://reviews.llvm.org/D43924 llvm-svn: 329337
* [WebAssembly] Remove another trivial accessor.Rui Ueyama2018-04-052-11/+6
| | | | | | Differential Revision: https://reviews.llvm.org/D43725 llvm-svn: 329336
* [RuntimeDyld][PowerPC] Use global entry points for calls between sections.Lang Hames2018-04-051-9/+13
| | | | | | | | | | | | | | | | | | Functions in different objects may use different TOCs, so calls between such functions should use the global entry point of the callee which updates the TOC pointer. This should fix a bug that the Numba developers encountered (see https://github.com/numba/numba/issues/2451). Patch by Olexa Bilaniuk. Thanks Olexa! No RuntimeDyld checker test case yet as I am not familiar enough with how RuntimeDyldELF fixes up call-sites, but I do not want to hold up landing this. I will continue to work on it and see if I can rope some powerpc experts in. llvm-svn: 329335
* [Bitcode] Change std::sort to llvm::sort in response to r327219Mandeep Singh Grang2018-04-053-4/+4
| | | | | | | | | | | | | | | | | | | | | | Summary: r327219 added wrappers to std::sort which randomly shuffle the container before sorting. This will help in uncovering non-determinism caused due to undefined sorting order of objects having the same key. To make use of that infrastructure we need to invoke llvm::sort instead of std::sort. Note: This patch is one of a series of patches to replace *all* std::sort to llvm::sort. Refer the comments section in D44363 for a list of all the required patches. Reviewers: pcc, mehdi_amini, dexonsmith Reviewed By: dexonsmith Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D45132 llvm-svn: 329334
* [ELF] Add CHECK to test/ELF/undef-start.sFangrui Song2018-04-051-2/+4
| | | | llvm-svn: 329333
* DR1672, DR1813, DR1881, DR2120: Implement recent fixes to "standardRichard Smith2018-04-0517-63/+419
| | | | | | | | | | | | | | | | | layout" rules. The new rules say that a standard-layout struct has its first non-static data member and all base classes at offset 0, and consider a class to not be standard-layout if that would result in multiple subobjects of a single type having the same address. We track "is C++11 standard-layout class" separately from "is standard-layout class" so that the ABIs that need this information can still use it. Differential Revision: https://reviews.llvm.org/D45176 llvm-svn: 329332
* [InstCombine] Properly change GEP type when reassociating loop invariant GEP ↵Daniel Neilson2018-04-052-3/+133
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | chains Summary: This is a fix to PR37005. Essentially, rL328539 ([InstCombine] reassociate loop invariant GEP chains to enable LICM) contains a bug whereby it will convert: %src = getelementptr inbounds i8, i8* %base, <2 x i64> %val %res = getelementptr inbounds i8, <2 x i8*> %src, i64 %val2 into: %src = getelementptr inbounds i8, i8* %base, i64 %val2 %res = getelementptr inbounds i8, <2 x i8*> %src, <2 x i64> %val By swapping the index operands if the GEPs are in a loop, and %val is loop variant while %val2 is loop invariant. This fix recreates new GEP instructions if the index operand swap would result in the type of %src changing from vector to scalar, or vice versa. Reviewers: sebpop, spatel Reviewed By: sebpop Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D45287 llvm-svn: 329331
* [X86] Synchronize the SchedRW on some EVEX instructions with their VEX ↵Craig Topper2018-04-053-331/+346
| | | | | | | | equivalents. Mostly vector load, store, and move instructions. llvm-svn: 329330
* [ARM] Change std::sort to llvm::sort in response to r327219Mandeep Singh Grang2018-04-054-18/+18
| | | | | | | | | | | | | | | | | | | | | | Summary: r327219 added wrappers to std::sort which randomly shuffle the container before sorting. This will help in uncovering non-determinism caused due to undefined sorting order of objects having the same key. To make use of that infrastructure we need to invoke llvm::sort instead of std::sort. Note: This patch is one of a series of patches to replace *all* std::sort to llvm::sort. Refer the comments section in D44363 for a list of all the required patches. Reviewers: t.p.northover, RKSimon, MatzeB, bkramer Reviewed By: bkramer Subscribers: javed.absar, llvm-commits, kristof.beyls Differential Revision: https://reviews.llvm.org/D44855 llvm-svn: 329329
* Silence msvc warning on isl. NFC.Michael Kruse2018-04-051-0/+1
| | | | | | | | | | | | | | | | | The warning is: isl_union_map.c(2041): warning C4221: nonstandard extension used: 'filter_user': cannot be initialized using address of automatic variable 'data' for the following code (and others) struct isl_un_op_drop_user_data data = { &isl_set_is_wrapping }; struct isl_un_op_control control = { .filter = &un_op_filter_drop_user, .filter_user = &data, .fn_map = &isl_set_wrapped_domain_map, }; llvm-svn: 329328
* [X86] Disassembler support for having an ADSIZE prefix affect instructions ↵Craig Topper2018-04-054-2/+32
| | | | | | | | with 0xf2 and 0xf3 prefixes. Needed to support umonitor from D45253. llvm-svn: 329327
* [llvm-pdbutil] Display types from MSVC precompiled header object files.Zachary Turner2018-04-052-2/+11
| | | | | | | | These appear in a .debug$P section, which is exactly the same in format as a .debug$T section. So we shouldn't ignore these when dumping types. llvm-svn: 329326
* llvm-exegesis: Fix unittests include dirs when llvm is a part of another projectKonstantin Zhuravlyov2018-04-051-3/+3
| | | | | | | | | | When llvm is a part of another project (i.e. opencl), CMAKE_SOURCE_DIR and CMAKE_BINARY_DIR are pointing to the parent project, which lead to build failures. Differential Revision: https://reviews.llvm.org/D45328 llvm-svn: 329325
* Remove the temporary availability checking workaround forAlex Lorenz2018-04-052-24/+2
| | | | | | | | the nested declarations in @interface. rdar://28825862 llvm-svn: 329324
* Fix typo in comment -fmath-errno=0 -> -fno-math-errnoSam Clegg2018-04-051-1/+1
| | | | | | | | The former is not a valid clang argument Differential Revision: https://reviews.llvm.org/D45102 llvm-svn: 329323
* [InstCombine] add test for fneg+fsub with nsz; NFCSanjay Patel2018-04-051-3/+17
| | | | | | | | There used to be a fold that would handle this case more generally, but it was removed at rL73243 to fix PR4374: https://bugs.llvm.org/show_bug.cgi?id=4374 llvm-svn: 329322
* [X86][SSE] Add integer add/mul vector.reduce testsSimon Pilgrim2018-04-052-0/+4317
| | | | llvm-svn: 329321
* [X86][SSE] Add integer and/or/xor vector.reduce testsSimon Pilgrim2018-04-053-0/+3084
| | | | llvm-svn: 329320
* [X86][SSE] Add integer min/max vector.reduce testsSimon Pilgrim2018-04-054-0/+7300
| | | | llvm-svn: 329319
* Another fix for r329293: Unbreak the windows botsPhilip Pfaffe2018-04-051-13/+20
| | | | | | | Only build the unittest if plugins are enabled. Link components into the TestPlugin on windows and cygwin. llvm-svn: 329318
* Make "Size" column in the map file one characters shorter.Rui Ueyama2018-04-054-112/+112
| | | | | | | | | Previously, "size" column is 9 characters long which is too long at least for 32-bit (because at maximum it needs 8 columns). This patch make it one column shorter than before. That's also a reasonable default for 64-bit. llvm-svn: 329317
* [InstCombine] use pattern matchers for fsub --> fadd foldsSanjay Patel2018-04-052-7/+11
| | | | | | This allows folding for vectors with undef elements. llvm-svn: 329316
* [WebAssembly] Allow for the creation of user-defined custom sectionsSam Clegg2018-04-054-2/+108
| | | | | | | | | | | | | This patch adds a way for users to create their own custom sections to be added to wasm files. At the LLVM IR layer, they are defined through the "wasm.custom_sections" named metadata. The expected use case for this is bindings generators such as wasm-bindgen. Patch by Dan Gohman Differential Revision: https://reviews.llvm.org/D45297 llvm-svn: 329315
* One more windows build fixPavel Labath2018-04-051-0/+1
| | | | llvm-svn: 329314
* [InstCombine] add tests for fsub --> fadd; NFCSanjay Patel2018-04-051-3/+65
| | | | llvm-svn: 329313
* Fix column size in the map file.Rui Ueyama2018-04-054-112/+114
| | | | | | Size can be narrow, but LMA should be the same width as VMA. llvm-svn: 329312
* [documentation][llvm-mca] Update the documentation.Andrea Di Biagio2018-04-052-40/+19
| | | | | | | Scheduling models can now describe processor register files and retire control units. This updates the existing documentation and the README file. llvm-svn: 329311
* [X86] Use WriteFShuffle256 for VEXTRACTF128 to be consistent with ↵Craig Topper2018-04-051-1/+1
| | | | | | VEXTRACTI128 which uses WriteShuffle256. llvm-svn: 329310
* Fix windows build after r329296Pavel Labath2018-04-052-0/+2
| | | | | | Add a couple of #include <csignal>s. llvm-svn: 329309
* Fix r329293: Add a missing CMake dependencyPhilip Pfaffe2018-04-051-0/+1
| | | | | | | The unittest plugin indirectly includes Attributes.gen, so make sure its target depends on the appropriate tablegen target. llvm-svn: 329308
* Initialize OutputOff to zero.Rafael Espindola2018-04-052-2/+11
| | | | | | | We have a dedicated Live bit, so we don't need a special value and we were not accounting for in at least one place. llvm-svn: 329307
* Fix the buildbots after r329304.Andrea Di Biagio2018-04-051-1/+1
| | | | llvm-svn: 329306
* Cleanup DWARFCompileUnit and DWARFUnit in preparation for adding DWARFTypeUnitGreg Clayton2018-04-058-828/+569
| | | | | | | | Many things that were in DWARFCompileUnit actually need to be in DWARFUnit. This patch moves all DWARFUnit specific things over into DWARFUnit and fixes the layering. This is in preparation for adding DWARFTypeUnit for the .debug_types patch. Differential Revision: https://reviews.llvm.org/D45170 llvm-svn: 329305
* [MC][Tablegen] Allow models to describe the retire control unit for llvm-mca. Andrea Di Biagio2018-04-0512-73/+153
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch adds the ability to describe properties of the hardware retire control unit. Tablegen class RetireControlUnit has been added for this purpose (see TargetSchedule.td). A RetireControlUnit specifies the size of the reorder buffer, as well as the maximum number of opcodes that can be retired every cycle. A zero (or negative) value for the reorder buffer size means: "the size is unknown". If the size is unknown, then llvm-mca defaults it to the value of field SchedMachineModel::MicroOpBufferSize. A zero or negative number of opcodes retired per cycle means: "there is no restriction on the number of instructions that can be retired every cycle". Models can optionally specify an instance of RetireControlUnit. There can only be up-to one RetireControlUnit definition per scheduling model. Information related to the RCU (RetireControlUnit) is stored in (two new fields of) MCExtraProcessorInfo. llvm-mca loads that information when it initializes the DispatchUnit / RetireControlUnit (see Dispatch.h/Dispatch.cpp). This patch fixes PR36661. Differential Revision: https://reviews.llvm.org/D45259 llvm-svn: 329304
* [PatternMatch] define m_FNeg using m_FSubSanjay Patel2018-04-055-45/+16
| | | | | | | | | Using cstfp_pred_ty in the definition allows us to match vectors with undef elements. This replicates the change for m_Not from D44076 / rL326823 and continues towards making all pattern matchers allow undef elements in vectors. llvm-svn: 329303
* Remove namespace comment at end of class. NFC.Michael Kruse2018-04-051-1/+1
| | | | | | | | | | The }; // namespace polly comment was put at the closing brace of the FunctionToScopPassAdaptor class. Since no namespace ends here, the comment is misplaced. Reported-by: Lukas Böhm <lukas.boehm93@gmail.com> llvm-svn: 329302
* [ASTImporter] Fix for importing unnamed structsAleksei Sidorin2018-04-055-4/+139
| | | | | | | | Patch by Peter Szecsi! Differential Revision: https://reviews.llvm.org/D30876 llvm-svn: 329301
* Disable -fmerge-all-constants as default.Manoj Gupta2018-04-0511-19/+28
| | | | | | | | | | | | | | | | | | | Summary: "-fmerge-all-constants" is a non-conforming optimization and should not be the default. It is also causing miscompiles when building Linux Kernel (https://lkml.org/lkml/2018/3/20/872). Fixes PR18538. Reviewers: rjmccall, rsmith, chandlerc Reviewed By: rsmith, chandlerc Subscribers: srhines, cfe-commits Differential Revision: https://reviews.llvm.org/D45289 llvm-svn: 329300
* [PowerPC] fix assertion failure due to missing instruction in ↵Hiroshi Inoue2018-04-051-3/+3
| | | | | | | | P9InstrResources.td This patch adds L(W|H|B)ZXTLS_32 instructions introduced by https://reviews.llvm.org/rL327635 in P9InstrResources.td. llvm-svn: 329299
OpenPOWER on IntegriCloud