summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* [MC] ELFObjectWriter: Removing unneeded variable and castSam Clegg2018-05-071-5/+4
| | | | | | Differential Revision: https://reviews.llvm.org/D46289 llvm-svn: 331704
* Rename a local variable whose scope is very narrow. NFC.Rui Ueyama2018-05-071-3/+3
| | | | llvm-svn: 331703
* Revert r330742: Let TableGen write output only if it changed, instead of ↵Chandler Carruth2018-05-072-20/+21
| | | | | | | | | | | | | | | | | | | | doing so in cmake. This change causes us to re-run tablegen for every single target on every single build. This is much, much worse than the problem being fixed AFAICT. On my system, it makes a clean rebuild of `llc` with nothing changed go from .5s to over 8s. On systems with less parallelism, slower file systems, or high process startup overhead this will be even more extreme. The only way I see this could be a win is in clean builds where we churn the filesystem. But I think incremental rebuild is more important, and so if we want to re-instate this, it needs to be done in a way that doesn't trigger constant re-runs of tablegen. llvm-svn: 331702
* [sanitizer] Simplify ThreadLister interfaceVitaly Buka2018-05-074-82/+43
| | | | | | | | | | Reviewers: eugenis Subscribers: kubamracek, llvm-commits Differential Revision: https://reviews.llvm.org/D46516 llvm-svn: 331701
* Improve error message for --plugin-opt=thinlto-prefix-replace.Rui Ueyama2018-05-072-3/+4
| | | | llvm-svn: 331700
* Rename Config::ThinLTOIndexOnlyObjectFiles -> Config::ThinLTOIndexOnlyArg.Rui Ueyama2018-05-073-6/+6
| | | | llvm-svn: 331699
* Split BitcodeCompiler::init() into two functions. NFC.Rui Ueyama2018-05-072-34/+33
| | | | | | | | | Previously, code to initialize Backend and code to initialize Conf are intermingled in init(), though they don't depend on each other. Differential Revision: https://reviews.llvm.org/D46554 llvm-svn: 331698
* Fix failing codegen test on non-x86_64 platformsEric Fiselier2018-05-071-38/+39
| | | | llvm-svn: 331697
* Add support for thinlto option ( thinlto-emit-imports-files) to emit import ↵Rumeet Dhindsa2018-05-074-7/+72
| | | | | | | | files for thinlink. Differential Revision: https://reviews.llvm.org/D46400 llvm-svn: 331696
* Follow Up on [MachineVerifier][GlobalISel] NFC, Improving MO printing and ↵Roman Tereshin2018-05-071-10/+2
| | | | | | | | refactoring visitMachineInstrBefore Fixing accidentally broken CodeGen/X86/verifier-generic-types-1.mir test llvm-svn: 331695
* [MachineVerifier][GlobalISel] Checking that generic instrs have LLTs on all ↵Roman Tereshin2018-05-074-10/+48
| | | | | | | | | | | | | | | | | | | | | | | | | | vregs Every generic machine instruction must have generic virtual registers only, that is, have a low-level type attached to each operand. Previously MachineVerifier would catch a type missing on an operand only if the previous operand for the the same type index exists and have a type attached to it and it will report it as a type mismatch. This is incosistent behaviour and a misleading error message. This commit makes sure MachineVerifier explicitly checks that the types are there for every operand and if not provides a straightforward error message. Reviewers: qcolombet t.p.northover bogner ab Reviewed By: qcolombet Subscribers: rovka, kristof.beyls, llvm-commits Differential Revision: https://reviews.llvm.org/D46455 llvm-svn: 331694
* [MachineVerifier][GlobalISel] NFC, Improving MO printing and refactoring ↵Roman Tereshin2018-05-075-21/+68
| | | | | | | | | | | | | | | | | | | | visitMachineInstrBefore This is an NFC pre-commit for the following "Checking that generic instrs have LLTs on all vregs" commit. This overloads MachineOperand::print to make it possible to print LLTs with standalone machine operands. This also overloads MachineVerifier::print(...MachineOperand...) with an optional LLT using the newly introduced MachineOperand::print variant; no actual calls added. This also refactors MachineVerifier::visitMachineInstrBefore in the parts dealing with all generic instructions (checking Selected property, LLTs, and phys regs). llvm-svn: 331693
* PR37352: mangle numbering for decomposition declarations.Richard Smith2018-05-072-1/+64
| | | | | | | | | | In order to match our mangling scheme, use a different set of numbers for decomposition declarations, and consider all binding names when forming the numbering. This does not yet affect any mangled names we produce, because local decomposition declarations can't yet have linkage, but a C++ standard proposal to change that is currently being processed. llvm-svn: 331692
* AMDGPU/GlobalISel: Don't try to lower hull shadersTom Stellard2018-05-071-2/+3
| | | | | | | | | | | | Summary: The AMDGPU_HS calling convention is not supported yet. Reviewers: arsenm, nhaehnle Subscribers: kzhuravl, wdng, yaxunl, rovka, kristof.beyls, dstuttard, tpr, t-tye, llvm-commits Differential Revision: https://reviews.llvm.org/D46149 llvm-svn: 331691
* Do not call exit() directly from lld.Rui Ueyama2018-05-073-2/+12
| | | | | | | | | | Our promise is that as long as there's no fatal error (i.e. broken file is given to the linker), our main function returns to the caller. So we can't use exit() in the regular code path. Differential Revision: https://reviews.llvm.org/D46442 llvm-svn: 331690
* Refactor ThinLTO-related code in BitcodeCompiler.cpp. NFC.Rui Ueyama2018-05-073-54/+35
| | | | | | | | | | | | Summary: Refactor ThinLTO-related code in BitcodeCompiler.cpp. NFC. Reviewers: rdhindsa, espindola Subscribers: emaste, inglorion, arichardson, llvm-commits, eraman Differential Revision: https://reviews.llvm.org/D46549 llvm-svn: 331689
* [NFC] Move 2 variable initialization from Ctor to member initializers.Erich Keane2018-05-071-5/+3
| | | | | | | In response to dblaikie's suggestion on r331536, replace the two enum typed variable initializers in the constructor with member initializers. llvm-svn: 331688
* [tools] Add missing test dependencyAlexander Shaposhnikov2018-05-071-0/+1
| | | | | | Caught by the build bots. llvm-svn: 331687
* [lit, lldbsuite] Fixes for several tests LLDB tests for Python 3 or WindowsStella Stamenova2018-05-073-2/+11
| | | | | | | | | | | | | | | | | Summary: In decorators.py, when opening streams, open them in text mode. In Py3, if they are not opened in text mode, the data is also expected to be binary, but we always use text data. In TestLinuxCore, skip the tests that are not applicable on Windows In the python api main.c, update the code to be compilable on Windows Reviewers: asmith, zturner Reviewed By: zturner Subscribers: zturner Differential Revision: https://reviews.llvm.org/D46440 llvm-svn: 331686
* [DAGCombiner] Masked merge: enhance handling of 'andn' with immediatesRoman Lebedev2018-05-072-11/+21
| | | | | | | | | | | | | | | | | | | | | Summary: Split off from D46031. The previous patch, D46493, completely disabled unfolding in case of immediates. But we can do better: {F6120274} {F6120277} https://rise4fun.com/Alive/xJS Reviewers: spatel, craig.topper Reviewed By: spatel Subscribers: andreadb, llvm-commits Differential Revision: https://reviews.llvm.org/D46494 llvm-svn: 331685
* [DagCombiner] Not all 'andn''s work with immediates.Roman Lebedev2018-05-076-17/+33
| | | | | | | | | | | | | | | | | | | | | | | | | Summary: Split off from D46031. In masked merge case, this degrades IPC by decreasing instruction count. {F6108777} The next patch should be able to recover and improve this. This also affects the transform @spatel have added in D27489 / rL289738, and the test coverage for X86 was missing. But after i have added it, and looked at the changes in MCA, i'm somewhat confused. {F6093591} {F6093592} {F6093593} I'd say this regression is an improvement, since `IPC` increased in that case? Reviewers: spatel, craig.topper Reviewed By: spatel Subscribers: andreadb, llvm-commits, spatel Differential Revision: https://reviews.llvm.org/D46493 llvm-svn: 331684
* [X86] Use target feature defines in tests instead of defining our own flag ↵Craig Topper2018-05-073-10/+10
| | | | | | on the command line. NFCI llvm-svn: 331683
* [X86] Make _mm256_gf2p8mul_epi8 require avx features since its 256 bits.Craig Topper2018-05-071-6/+10
| | | | | | | | Without this we throw an error on the header file instead of the user code when the right features aren't enabled in clang. Rename the other DEFAULT_FN_ATTRS defines to _Z for 512-bit since I used _Y for this case. llvm-svn: 331682
* Relax a FileCheck pattern to make it pass on Windows.Peter Collingbourne2018-05-071-1/+1
| | | | | | | Should fix Windows bot failure: http://lab.llvm.org:8011/builders/llvm-clang-lld-x86_64-scei-ps4-windows10pro-fast/builds/16956 llvm-svn: 331681
* Remove explicit setting of the CFI jumptable section name, it does not appearDmitry Mikulin2018-05-077-18/+12
| | | | | | | | | | to be needed: jump table sections are created with .cfi.jumptable suffix. With this change each jump table is placed in a separate section, which allows the linker to re-order them. Differential Revision: https://reviews.llvm.org/D46537 llvm-svn: 331680
* Test Commit: fix a comment to be grammatically correctStella Stamenova2018-05-071-1/+1
| | | | llvm-svn: 331679
* [llvm-mca][x86] Remove addsubpd from SSE2 testsSimon Pilgrim2018-05-079-72/+9
| | | | llvm-svn: 331678
* [C++2a] Implement operator<=> CodeGen and ExprConstantEric Fiselier2018-05-0724-392/+3548
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: This patch tackles long hanging fruit for the builtin operator<=> expressions. It is currently needs some cleanup before landing, but I want to get some initial feedback. The main changes are: * Lookup, build, and store the required standard library types and expressions in `ASTContext`. By storing them in ASTContext we don't need to store (and duplicate) the required expressions in the BinaryOperator AST nodes. * Implement [expr.spaceship] checking, including diagnosing narrowing conversions. * Implement `ExprConstant` for builtin spaceship operators. * Implement builitin operator<=> support in `CodeGenAgg`. Initially I emitted the required comparisons using `ScalarExprEmitter::VisitBinaryOperator`, but this caused the operand expressions to be emitted once for every required cmp. * Implement [builtin.over] with modifications to support the intent of P0946R0. See the note on `BuiltinOperatorOverloadBuilder::addThreeWayArithmeticOverloads` for more information about the workaround. Reviewers: rsmith, aaron.ballman, majnemer, rnk, compnerd, rjmccall Reviewed By: rjmccall Subscribers: rjmccall, rsmith, aaron.ballman, junbuml, mgorny, cfe-commits Differential Revision: https://reviews.llvm.org/D45476 llvm-svn: 331677
* [tools] Adjust the lit config for llvm-stripAlexander Shaposhnikov2018-05-071-1/+2
| | | | | | Caught by the build bots. llvm-svn: 331676
* [llvm-rc] Fix build: missing 'override'.Roman Lebedev2018-05-071-1/+1
| | | | llvm-svn: 331675
* [CFI] Force LLVM to die if the implicit blacklist files cannot be found.Peter Collingbourne2018-05-074-1/+9
| | | | | | | | | | | | | | Currently LLVM CFI tries to use an implicit blacklist file, currently in /usr/lib64/clang/<version>/share. If the file is not there, LLVM happily continues, which causes CFI to add checks to files/functions that are known to fail, generating binaries that fail. This CL causes LLVM to die (I hope) if it can't find these implicit blacklist files. Patch by Caroline Tice! Differential Revision: https://reviews.llvm.org/D46403 llvm-svn: 331674
* Correct warning on Float->Integer conversions.Erich Keane2018-05-075-4/+34
| | | | | | | | | | | | | | | | | | As identified and briefly discussed here: https://bugs.llvm.org/show_bug.cgi?id=37305 Converting a floating point number to an integer type when the integral part is out of the range of the integer type is undefined behavior in C. Additionally, CodeGen emits an undef in this situation. HOWEVER, we've been giving a warning that says that the value is changed. This patch corrects the warning to list that it is actually undefined behavior. Differential Revision: https://reviews.llvm.org/D46535 llvm-svn: 331673
* [X86] Split WriteFAdd/WriteFCmp/WriteFMul schedule classesSimon Pilgrim2018-05-0715-179/+236
| | | | | | | | Split to support single/double for scalar, XMM and YMM/ZMM instructions - removing InstrRW overrides for these instructions. Fixes Atom ADDSUBPD instruction and reclassifies VFPCLASS as WriteFCmp which is closer in behaviour. llvm-svn: 331672
* Add test to ensure lld writes linked files to linked objects file for ↵Rumeet Dhindsa2018-05-071-0/+7
| | | | | | | | ThinLTO Indexing Only option. Differential Revision: https://reviews.llvm.org/D46542 llvm-svn: 331671
* [llvm-rc] Implement the BITMAP resource typeMartin Storsjo2018-05-078-9/+76
| | | | | | Differential Revision: https://reviews.llvm.org/D46509 llvm-svn: 331670
* [llvm-rc] Allow optional commas between the string table index and valueMartin Storsjo2018-05-072-2/+4
| | | | | | | | | This form is even used in one of the examples at https://msdn.microsoft.com/en-us/library/windows/desktop/aa381050(v=vs.85).aspx. Differential Revision: https://reviews.llvm.org/D46508 llvm-svn: 331669
* [llvm-rc] Exclude padding from sizes in versioninfo resourcesMartin Storsjo2018-05-073-2/+60
| | | | | | | | | | | | | | | | | | | | | | Normally when writing something that requires padding, we first measure the length of the written payload data, then write padding if necessary. For a recursive structure like versioninfo, this means that the padding is excluded from the size of the inner element, but included in the size of the enclosing block. Rc.exe excludes the final padding (but not the padding of earlier children) from all levels of the hierarchy. To achieve this, don't pad after each block or value, but only before starting the next one. We still pad after completing the toplevel versioninfo resource, so this won't affect other resource types. Differential Revision: https://reviews.llvm.org/D46510 llvm-svn: 331668
* [llvm-rc] Fix alphabetical order of cases. NFC.Martin Storsjo2018-05-071-2/+2
| | | | llvm-svn: 331667
* [Driver] Use -fuse-line-directives by default in MSVC modeMartin Storsjo2018-05-072-2/+3
| | | | | | | | Don't use the GNU extension form of line markers in MSVC mode. Differential Revision: https://reviews.llvm.org/D46520 llvm-svn: 331666
* [SelectionDAG] Transfer DbgValues when casts are optimized in ↵Aaron Smith2018-05-072-2/+55
| | | | | | | | | | | | | | | | | | | | | SelectionDAG::getNode Summary: getNode optimizes (ext (trunc x)) to x and the dbgvalue node on trunc is lost. The fix calls transferDbgValues to add the dbgvalue to x. Add DebugInfo/AArch64/dbg-value-i16.ll Patch by Sejong Oh! Reviewers: aprantl, javed.absar, llvm-commits, vsk Reviewed By: aprantl, vsk Subscribers: kristof.beyls, JDevlieghere, llvm-commits Differential Revision: https://reviews.llvm.org/D46348 llvm-svn: 331665
* [WebAssembly] Ensure all .debug_XXX section has proper symbol namesSam Clegg2018-05-072-4/+11
| | | | | | | | | | | Updated wasm section symbols names to match section name, and ensure all referenced sections will have a symbol (per DWARF spec v3, Figure 43) Patch by Yury Delendik! Differential Revision: https://reviews.llvm.org/D46543 llvm-svn: 331664
* [tools] Introduce llvm-stripAlexander Shaposhnikov2018-05-076-20/+125
| | | | | | | | | | | | llvm-strip is supposed to be a drop-in replacement for binutils strip. To start the ball rolling this diff adds the initial bits for llvm-strip, more features will be added incrementally over time. Test plan: make check-all Differential revision: https://reviews.llvm.org/D46407 llvm-svn: 331663
* [sanitizer] s/TestOnlyInit/Init for the allocator ByteMap (NFC)Kostya Kortchinsky2018-05-073-5/+5
| | | | | | | | | | | | | | | | | Summary: The `TestOnlyInit` function of `{Flat,TwoLevel}ByteMap` seems to be a misnomer since the function is used outside of tests as well, namely in `SizeClassAllocator32::Init`. Rename it to `Init` and update the callers. Reviewers: alekseyshl, vitalybuka Reviewed By: vitalybuka Subscribers: kubamracek, delcypher, #sanitizers, llvm-commits Differential Revision: https://reviews.llvm.org/D46408 llvm-svn: 331662
* Status updates for RapperswilMarshall Clow2018-05-071-4/+4
| | | | llvm-svn: 331661
* [llvm-mca] Avoid exposing index values in the MCA interfaces.Matt Davis2018-05-0716-173/+204
| | | | | | | | | | | | | | | | | | | | | | | Summary: This patch eliminates many places where we originally needed to pass index values to represent an instruction. The index is still used as a key, in various parts of MCA. I'm not comfortable eliminating the index just yet. By burying the index in the instruction, we can avoid exposing that value in many places. Eventually, we should consider removing the Instructions list in the Backend all together, it's only used to hold and reclaim the memory for the allocated Instruction instances. Instead we could pass around a smart pointer. But that's a separate discussion/patch. Reviewers: andreadb, courbet, RKSimon Reviewed By: andreadb Subscribers: javed.absar, tschuett, gbedwell, llvm-commits Differential Revision: https://reviews.llvm.org/D46367 llvm-svn: 331660
* [X86][AVX2] Tag VPMOVSX/VPMOVZX ymm instructions as WriteShuffle256Simon Pilgrim2018-05-079-141/+80
| | | | | | | | These are more like cross-lane shuffles than regular shuffles - we already do this for AVX512 equivalents. Differential Revision: https://reviews.llvm.org/D46229 llvm-svn: 331659
* Do not pass Config members to simplify function signature. NFC.Rui Ueyama2018-05-071-9/+4
| | | | llvm-svn: 331658
* Parse --thinlto-prefix-replace early so that we don't need to parse it ↵Rui Ueyama2018-05-073-19/+14
| | | | | | later. NFC. llvm-svn: 331657
* Use StringRef instead of `const std::string &`. NFC.Rui Ueyama2018-05-071-3/+3
| | | | llvm-svn: 331656
* Refactor BitcodeCompiler::createLTO. NFC.Rui Ueyama2018-05-072-19/+22
| | | | llvm-svn: 331655
OpenPOWER on IntegriCloud