summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Module: Improve diagnostic message when cxx modules are disabled and @import ↵Manman Ren2017-01-193-2/+13
| | | | | | | | is used in Objective CXX. rdar://problem/19399671 llvm-svn: 292508
* Add an interface to scale the frequencies of a set of blocks.Easwaran Raman2017-01-193-0/+36
| | | | | | | | The scaling is done with reference to the the new frequency of a reference block. Differential Revision: https://reviews.llvm.org/D28535 llvm-svn: 292507
* [InstCombine] Simplify gep (gep p, a), (b-a)Davide Italiano2017-01-192-19/+40
| | | | | | | | Patch by Andrea Canciani. Differential Revision: https://reviews.llvm.org/D27413 llvm-svn: 292506
* [Builtin] [ARM] Update CMake to support the build of armv6mWeiming Zhao2017-01-193-2/+27
| | | | | | | | | | | | | | | | | | Summary: Setting -DCOMPILER_RT_TEST_TARGET_TRIPLE=armv6m-none-eabi will enable the build of builtin functions ARMv6m. Currently, only those asms that support armv6m are added. TODO:All asm sin ARM_EABI_Sources are ported for thumb1 so Thumb1_EABI_Sources will be deprecated. Reviewers: rengolin, compnerd Reviewed By: compnerd Subscribers: aemerson, mgorny, llvm-commits Differential Revision: https://reviews.llvm.org/D28463 llvm-svn: 292504
* [X86][SSE] Improve comments describing combineTruncatedArithmetic. NFCI.Simon Pilgrim2017-01-191-0/+7
| | | | llvm-svn: 292502
* Remove this test from the r292500 commit till Chris and I figure outKevin Enderby2017-01-191-50/+0
| | | | | | why it is failing on a couple of build bots. llvm-svn: 292501
* Add support for the new LC_NOTE load command.Kevin Enderby2017-01-1911-0/+137
| | | | | | | | | | It describes a region of arbitrary data included in a Mach-O file. Its initial use is to record extra data in MH_CORE files. rdar://30001545 rdar://30001731 llvm-svn: 292500
* Provide a substitute to load command of gdb.Hafiz Abid Qadeer2017-01-195-0/+91
| | | | | | | | | | | | | | | For bare-metal targets, lldb was missing a command like 'load' in gdb which can be used to create executable image on the target. This was discussed in http://lists.llvm.org/pipermail/lldb-dev/2016-December/011752.html This commits adds an option to "target module load" command to provide that functionality. It does not set the PC to entry address which will be done separately. Reviewed in https://reviews.llvm.org/D28804 llvm-svn: 292499
* [Sema] Reword unused lambda capture warningMalcolm Parsons2017-01-192-4/+8
| | | | | | | | | | | | | | | Summary: The warning doesn't know why the variable was looked up but not odr-used, so reword it to not claim that it was used in an unevaluated context. Reviewers: aaron.ballman Subscribers: cfe-commits Differential Revision: https://reviews.llvm.org/D28902 llvm-svn: 292498
* [Sema] Fix PR28181 by avoiding calling BuildOverloadedBinOp in C modeAlex Lorenz2017-01-192-6/+18
| | | | | | | | rdar://28532840 Differential Revision: https://reviews.llvm.org/D25213 llvm-svn: 292497
* [Hexagon] Linux linker does not support .gnu-hashSumanth Gundapaneni2017-01-192-1/+11
| | | | | | | | | Hexagon Linux dynamic loader does not use (in fact does not support) .gnu-hash Differential Revision: https://reviews.llvm.org/D28865 llvm-svn: 292496
* [X86][SSE] Attempt to pre-truncate arithmetic operations that have already ↵Simon Pilgrim2017-01-192-235/+97
| | | | | | | | been extended As discussed on D28219 - it is profitable to combine trunc(binop (s/zext(x), s/zext(y)) to binop(trunc(s/zext(x)), trunc(s/zext(y))) assuming the trunc(ext()) will simplify further llvm-svn: 292493
* [InstCombine] icmp Pred (shl nsw X, C1), C0 --> icmp Pred X, C0 >> C1Sanjay Patel2017-01-192-74/+68
| | | | | | | | | | | | | | Try harder to fold icmp with shl nsw as discussed here: http://lists.llvm.org/pipermail/llvm-dev/2017-January/108749.html This is similar to the 'shl nuw' transforms that were added with D25913. This may eventually help solve: https://llvm.org/bugs/show_bug.cgi?id=30773 Differential Revision: https://reviews.llvm.org/D28406 llvm-svn: 292492
* [clang-tidy] Do not trigger move fix for non-copy assignment operators in ↵Felix Berger2017-01-192-1/+13
| | | | | | | | | | | | performance-unnecessary-value-param check Reviewers: alexfh, sbenza, malcolm.parsons Subscribers: JDevlieghere, cfe-commits Differential Revision: https://reviews.llvm.org/D28899 llvm-svn: 292491
* Mark two of the TS implementations as 'in progress'Marshall Clow2017-01-191-3/+3
| | | | llvm-svn: 292490
* Refactor logging in NativeProcessLinuxPavel Labath2017-01-191-637/+323
| | | | | | | | | | Use the LLDB_LOG macro instead of the more verbose if(log) ... syntax. I have also consolidated the log channels (everything now goes to the posix channel, instead of a mixture of posix and lldb), and cleaned up some of the more convoluted log statements. llvm-svn: 292489
* Avoid unused variable warning when assert is disabled.Hafiz Abid Qadeer2017-01-191-2/+2
| | | | llvm-svn: 292488
* [X86][SSE] Added tests for pre-truncating arithmetic operations that have ↵Simon Pilgrim2017-01-191-0/+127
| | | | | | | | already been extended As discussed on D28219 - it is profitable to combine trunc(binop (s/zext(x), s/zext(y)) to binop(trunc(s/zext(x)), trunc(s/zext(y))) assuming the trunc(ext()) will simplify further llvm-svn: 292487
* BlockGenerator: Do not redundantly reload from PHI-allocas in non-affine stmtsTobias Grosser2017-01-194-11/+83
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Before this change we created an additional reload in the copy of the incoming block of a PHI node to reload the incoming value, even though the necessary value has already been made available by the normally generated scalar loads. In this change, we drop the code that generates this redundant reload and instead just reuse the scalar value already available. Besides making the generated code slightly cleaner, this change also makes sure that scalar loads go through the normal logic, which means they can be remapped (e.g. to array slots) and corresponding code is generated to load from the remapped location. Without this change, the original scalar load at the beginning of the non-affine region would have been remapped, but the redundant scalar load would continue to load from the old PHI slot location. It might be possible to further simplify the code in addOperandToPHI, but this would not only mean to pull out getNewValue, but to also change the insertion point update logic. As this did not work when trying it the first time, this change is likely not trivial. To not introduce bugs last minute, we postpone further simplications to a subsequent commit. We also document the current behavior a little bit better. Reviewed By: Meinersbur Differential Revision: https://reviews.llvm.org/D28892 llvm-svn: 292486
* [DAG] Don't increase SDNodeOrder for dbg.value/declare.Mikael Holmen2017-01-194-4/+199
| | | | | | | | | | | | | | | | | | | | | | | | | Summary: The SDNodeOrder is saved in the IROrder field in the SDNode, and this field may affects scheduling. Thus, letting dbg.value/declare increase the order numbers may in turn affect scheduling. Because of this change we also need to update the code deciding when dbg values should be output, in ScheduleDAGSDNodes.cpp/ProcessSDDbgValues. Dbg values now have the same order as the SDNode they are connected to, not the following orders. Test cases provided by Florian Hahn. Reviewers: bogner, aprantl, sunfish, atrick Reviewed By: atrick Subscribers: fhahn, probinson, andreadb, llvm-commits, MatzeB Differential Revision: https://reviews.llvm.org/D25318 llvm-svn: 292485
* [docs] Tell Doxygen to expand LLVM_ALIGNAS to nothingMalcolm Parsons2017-01-191-4/+4
| | | | | | | | | | | | | | | | | Summary: Docs for clang::Decl and clang::TemplateSpecializationType have not been generated since LLVM_ALIGNAS was added to them. Tell Doxygen to expand LLVM_ALIGNAS to nothing as described at https://www.stack.nl/~dimitri/doxygen/manual/preprocessing.html Reviewers: aaron.ballman, klimek, alexfh Subscribers: ioeric, cfe-commits Differential Revision: https://reviews.llvm.org/D28850 llvm-svn: 292484
* [docs] Tell Doxygen to expand LLVM_ALIGNAS to nothingMalcolm Parsons2017-01-191-3/+3
| | | | | | | | | | | | | | | | | Summary: Docs for clang::Decl and clang::TemplateSpecializationType have not been generated since LLVM_ALIGNAS was added to them. Tell Doxygen to expand LLVM_ALIGNAS to nothing as described at https://www.stack.nl/~dimitri/doxygen/manual/preprocessing.html Reviewers: aaron.ballman, klimek, alexfh Subscribers: ioeric, cfe-commits Differential Revision: https://reviews.llvm.org/D28850 llvm-svn: 292483
* Test commit access, remove trailing whitespaceMikael Holmen2017-01-191-1/+1
| | | | llvm-svn: 292482
* [GlobalISel] Pointers are legal operands for G_SELECT on AArch64Kristof Beyls2017-01-193-2/+14
| | | | | | Differential Revision: https://reviews.llvm.org/D28805 llvm-svn: 292481
* BlockGenerator: remove obfuscating const and const castsTobias Grosser2017-01-192-4/+4
| | | | | | | | Making certain values 'const' to just cast it away a little later mainly obfuscates the code. Hence, we just drop the 'const' parts. Suggested-by: Michael Kruse <llvm@meinersbur.de> llvm-svn: 292480
* Recommiting unsigned saturation with a bugfix.Elena Demikhovsky2017-01-193-0/+353
| | | | | | | A test case that crached is added to avx512-trunc.ll. (PR31589) llvm-svn: 292479
* Re-commit: [globalisel] Tablegen-erate current Register Bank InformationDaniel Sanders2017-01-1917-193/+442
| | | | | | | | | | | | | | | | | | | | | Summary: Adds a RegisterBank tablegen class that can be used to declare the register banks and an associated tablegen pass to generate the necessary code. Changes since first commit attempt: * Added missing guards * Added more missing guards * Found and fixed a use-after-free bug involving Twine locals Reviewers: t.p.northover, ab, rovka, qcolombet Reviewed By: qcolombet Subscribers: aditya_nandakumar, rengolin, kristof.beyls, vkalintiris, mgorny, dberris, llvm-commits, rovka Differential Revision: https://reviews.llvm.org/D27338 llvm-svn: 292478
* [docs] Tell Doxygen to expand LLVM_ALIGNAS to nothingMalcolm Parsons2017-01-191-3/+3
| | | | | | | | | | | | | | | | | Summary: Docs for clang::Decl and clang::TemplateSpecializationType have not been generated since LLVM_ALIGNAS was added to them. Tell Doxygen to expand LLVM_ALIGNAS to nothing as described at https://www.stack.nl/~dimitri/doxygen/manual/preprocessing.html Reviewers: aaron.ballman, klimek, alexfh Subscribers: ioeric, cfe-commits Differential Revision: https://reviews.llvm.org/D28850 llvm-svn: 292477
* GlobalISel: Implement widening for shiftsJustin Bogner2017-01-192-5/+53
| | | | llvm-svn: 292476
* [AVX-512] Add test cases that show where we are using two subvector inserts ↵Craig Topper2017-01-192-0/+58
| | | | | | | | | | to broadcast a 128-bit subvector into a 512-bit vector. We'd be better off using something like SHUFF32X4. If the subvector comes from a load, we convert to SUBV_BROADCAST and use a broadcast instruction. But if there is no load we keep the inserts. I think we should create the SUBV_BROADCAST even without the load and let isel use the fallback patterns that are used if the load can't be folded. This will use the SHUFF32X4 or similar instruction for the 128-bit into 512-bit case and a single insert for 128 into 256 or 256 into 512. This should be fixed so subvector broadcast intrinsics can be replaced with native IR since some of those currently lower directly to SHUFF32X4. llvm-svn: 292475
* [AVX-512] Support ADD/SUB/MUL of mask vectorsCraig Topper2017-01-193-18/+223
| | | | | | | | | | | | | | | | | Summary: Currently we expand and scalarize these operations, but I think we should be able to implement ADD/SUB with KXOR and MUL with KAND. We already do this for scalar i1 operations so I just extended it to vectors of i1. Reviewers: zvi, delena Reviewed By: delena Subscribers: guyblank, llvm-commits Differential Revision: https://reviews.llvm.org/D28888 llvm-svn: 292474
* AMDGPU: Disable some fneg combines unless nszMatt Arsenault2017-01-194-41/+122
| | | | | | | | | | | | For -(x + y) -> (-x) + (-y), if x == -y, this would change the result from -0.0 to 0.0. Since the fma/fmad combine is an extension of this problem it also applies there. fmul should be fine, and I don't think any of the unary operators or conversions should be a problem either. llvm-svn: 292473
* AMDGPU: Remove modifiers from v_div_scale_*Matt Arsenault2017-01-195-18/+14
| | | | | | | | They seem to produce nonsense results when used. This should be applied to the release branch. llvm-svn: 292472
* Use range-based for loop [NFC]Tobias Grosser2017-01-191-2/+2
| | | | llvm-svn: 292471
* Improve test coverage in test/Isl/CodeGen/loop_partially_in_scop.ll [NFC]Tobias Grosser2017-01-191-20/+37
| | | | | | | | | | | | | | We rename the test case with -metarenamer to make the variable names easier to read and add additional check lines that verify the code we currently generate for PHI nodes. This code is interesting as it contains a PHI node in a non-affine sub-region, where some incoming blocks are within the non-affine sub-region and others are outside of the non-affine subregion. As can be seen in the check lines we currently load the PHI-node value twice. This commit documents this behavior. In a subsequent patch we will try to improve this. llvm-svn: 292470
* [X86] Merge LowerADD and LowerSUB into a single LowerADD_SUB since they are ↵Craig Topper2017-01-191-13/+3
| | | | | | identical. llvm-svn: 292469
* [sancov] applying blacklist to covered points tooMike Aizatsky2017-01-193-6/+30
| | | | | | Differential Revision: https://reviews.llvm.org/D28872 llvm-svn: 292468
* llvm-cxxfilt: filter out invalid manglingsSaleem Abdulrasool2017-01-192-3/+12
| | | | | | | | | | c++filt does not attempt to demangle symbols which do not match its expected format. This means that the symbol must start with _Z or ___Z (block invocation function extension). Any other symbols are returned as is. Note that this is different from the behaviour of __cxa_demangle which will demangle fragments. llvm-svn: 292467
* [AVX-512] Use VSHUF instructions instead of two inserts as fallback for ↵Craig Topper2017-01-192-90/+39
| | | | | | subvector broadcasts that can't fold the load. llvm-svn: 292466
* [AVX-512] Add additional test cases for broadcast intrinsics that ↵Craig Topper2017-01-194-0/+158
| | | | | | demonstates that we don't fold the loads to use a broadcast instruction. llvm-svn: 292465
* [PM] Add LoopVectorize to the default module pipelineMichael Kuperstein2017-01-192-4/+1
| | | | | | | | LV no longer "requires" LCSSA and LoopSimplify, and instead forms them internally as required. So, there's nothing preventing it from being enabled. llvm-svn: 292464
* LowerTypeTests: Implement exporting of type identifiers.Peter Collingbourne2017-01-197-31/+359
| | | | | | | | | | | | Type identifiers are exported by: - Adding coarse-grained information about how to test the type identifier to the summary. - Creating symbols in the object file (aliases and absolute symbols) containing fine-grained information about the type identifier. Differential Revision: https://reviews.llvm.org/D28424 llvm-svn: 292462
* GlobalISel: Implement narrowing for G_LOADJustin Bogner2017-01-192-0/+36
| | | | llvm-svn: 292461
* GlobalISel: Fix text wrapping in a comment. NFCJustin Bogner2017-01-191-2/+1
| | | | llvm-svn: 292460
* Use an actual valid register in testMatthias Braun2017-01-191-2/+2
| | | | llvm-svn: 292459
* Add -fdebug-info-for-profiling to emit more debug info for sample pgo ↵Dehao Chen2017-01-197-1/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | profile collection Summary: SamplePGO uses profile with debug info to collect profile. Unlike the traditional debugging purpose, sample pgo needs more accurate debug info to represent the profile. We add -femit-accurate-debug-info for this purpose. It can be combined with all debugging modes (-g, -gmlt, etc). It makes sure that the following pieces of info is always emitted: * start line of all subprograms * linkage name of all subprograms * standalone subprograms (functions that has neither inlined nor been inlined) The impact on speccpu2006 binary size (size increase comparing with -g0 binary, also includes data for -g binary, which does not change with this patch): -gmlt(orig) -gmlt(patched) -g 433.milc 4.68% 5.40% 19.73% 444.namd 8.45% 8.93% 45.99% 447.dealII 97.43% 115.21% 374.89% 450.soplex 27.75% 31.88% 126.04% 453.povray 21.81% 26.16% 92.03% 470.lbm 0.60% 0.67% 1.96% 482.sphinx3 5.77% 6.47% 26.17% 400.perlbench 17.81% 19.43% 73.08% 401.bzip2 3.73% 3.92% 12.18% 403.gcc 31.75% 34.48% 122.75% 429.mcf 0.78% 0.88% 3.89% 445.gobmk 6.08% 7.92% 42.27% 456.hmmer 10.36% 11.25% 35.23% 458.sjeng 5.08% 5.42% 14.36% 462.libquantum 1.71% 1.96% 6.36% 464.h264ref 15.61% 16.56% 43.92% 471.omnetpp 11.93% 15.84% 60.09% 473.astar 3.11% 3.69% 14.18% 483.xalancbmk 56.29% 81.63% 353.22% geomean 15.60% 18.30% 57.81% Debug info size change for -gmlt binary with this patch: 433.milc 13.46% 444.namd 5.35% 447.dealII 18.21% 450.soplex 14.68% 453.povray 19.65% 470.lbm 6.03% 482.sphinx3 11.21% 400.perlbench 8.91% 401.bzip2 4.41% 403.gcc 8.56% 429.mcf 8.24% 445.gobmk 29.47% 456.hmmer 8.19% 458.sjeng 6.05% 462.libquantum 11.23% 464.h264ref 5.93% 471.omnetpp 31.89% 473.astar 16.20% 483.xalancbmk 44.62% geomean 16.83% Reviewers: davidxl, andreadb, rob.lougher, dblaikie, echristo Reviewed By: dblaikie, echristo Subscribers: hfinkel, rob.lougher, andreadb, gbedwell, cfe-commits, probinson, llvm-commits, mehdi_amini Differential Revision: https://reviews.llvm.org/D25435 llvm-svn: 292458
* Add -debug-info-for-profiling to emit more debug info for sample pgo profile ↵Dehao Chen2017-01-197-10/+34
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | collection Summary: SamplePGO binaries built with -gmlt to collect profile. The current -gmlt debug info is limited, and we need some additional info: * start line of all subprograms * linkage name of all subprograms * standalone subprograms (functions that has neither inlined nor been inlined) This patch adds these information to the -gmlt binary. The impact on speccpu2006 binary size (size increase comparing with -g0 binary, also includes data for -g binary, which does not change with this patch): -gmlt(orig) -gmlt(patched) -g 433.milc 4.68% 5.40% 19.73% 444.namd 8.45% 8.93% 45.99% 447.dealII 97.43% 115.21% 374.89% 450.soplex 27.75% 31.88% 126.04% 453.povray 21.81% 26.16% 92.03% 470.lbm 0.60% 0.67% 1.96% 482.sphinx3 5.77% 6.47% 26.17% 400.perlbench 17.81% 19.43% 73.08% 401.bzip2 3.73% 3.92% 12.18% 403.gcc 31.75% 34.48% 122.75% 429.mcf 0.78% 0.88% 3.89% 445.gobmk 6.08% 7.92% 42.27% 456.hmmer 10.36% 11.25% 35.23% 458.sjeng 5.08% 5.42% 14.36% 462.libquantum 1.71% 1.96% 6.36% 464.h264ref 15.61% 16.56% 43.92% 471.omnetpp 11.93% 15.84% 60.09% 473.astar 3.11% 3.69% 14.18% 483.xalancbmk 56.29% 81.63% 353.22% geomean 15.60% 18.30% 57.81% Debug info size change for -gmlt binary with this patch: 433.milc 13.46% 444.namd 5.35% 447.dealII 18.21% 450.soplex 14.68% 453.povray 19.65% 470.lbm 6.03% 482.sphinx3 11.21% 400.perlbench 8.91% 401.bzip2 4.41% 403.gcc 8.56% 429.mcf 8.24% 445.gobmk 29.47% 456.hmmer 8.19% 458.sjeng 6.05% 462.libquantum 11.23% 464.h264ref 5.93% 471.omnetpp 31.89% 473.astar 16.20% 483.xalancbmk 44.62% geomean 16.83% Reviewers: davidxl, echristo, dblaikie Reviewed By: echristo, dblaikie Subscribers: aprantl, probinson, llvm-commits, mehdi_amini Differential Revision: https://reviews.llvm.org/D25434 llvm-svn: 292457
* [LV] Run loop-simplify and LCSSA explicitly instead of "requiring" themMichael Kuperstein2017-01-193-13/+71
| | | | | | | | | | | | This changes the vectorizer to explicitly use the loopsimplify and lcssa utils, instead of "requiring" the transformations as if they were analyses. This is not NFC, since it changes the LCSSA behavior - we no longer run LCSSA for all loops, but rather only for the loops we expect to modify. Differential Revision: https://reviews.llvm.org/D28868 llvm-svn: 292456
* LiveIntervalAnalysis: Cleanup; NFCMatthias Braun2017-01-192-150/+125
| | | | | | | | - Fix doxygen comments: Do not repeat name, remove duplicated doxygen comment (on declaration + implementation), etc. - Use more range based for llvm-svn: 292455
* Fix a problem with the new dyld interface code -- when a new processJason Molenda2017-01-191-0/+5
| | | | | | | | | | starts up, we need to clear the target's image list and only add the binaries into the target that are actually present in this process run. <rdar://problem/29857613> llvm-svn: 292454
OpenPOWER on IntegriCloud