summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* TableGen/AsmMatcherEmitter: Trust that stable_sort worksMatthias Braun2016-12-051-10/+0
| | | | | | | | | A debug build of AsmMatcherEmitter would use a quadratic algorithm to check whether std::stable_sort() actually sorted. Let's hope the authors of our C++ standard library did that testing for us. Removing the check gives a 3x speedup in the X86 case. llvm-svn: 288655
* DR1213: element access on an array xvalue or prvalue produces an xvalue. In theRichard Smith2016-12-0513-42/+147
| | | | | | | | | | | | | | latter case, a temporary array object is materialized, and can be lifetime-extended by binding a reference to the member access. Likewise, in an array-to-pointer decay, an rvalue array is materialized before being converted into a pointer. This caused IR generation to stop treating file-scope array compound literals as having static storage duration in some cases in C++; that has been rectified by modeling such a compound literal as an lvalue. This also improves clang's compatibility with GCC for those cases. llvm-svn: 288654
* TableGen: Some more std::string->StringInit* replacementsMatthias Braun2016-12-054-38/+28
| | | | llvm-svn: 288653
* TableGen/Record: Shortcut member access in hottest functionMatthias Braun2016-12-051-2/+3
| | | | | | | | This may seem unusual, but makes most debug tblgen builds ~10% faster. Usually we wouldn't care about speed that much in debug builds, but for tblgen that also translates into build time. llvm-svn: 288652
* TableGen: TableGenStringKey is no longer necessary as of r288642Matthias Braun2016-12-051-55/+0
| | | | llvm-svn: 288651
* TableGen: Use range based for; reserve vectors where possibleMatthias Braun2016-12-051-18/+23
| | | | llvm-svn: 288650
* TableGen/TGParser: Prefer SmallVector/ArrayRef over std::vectorMatthias Braun2016-12-052-68/+81
| | | | llvm-svn: 288649
* TableGen/Record: Replace std::vector with SmallVector/ArrayRefMatthias Braun2016-12-054-63/+60
| | | | llvm-svn: 288648
* ListInit::convertInitializerTo: avoid foldingset lookup if nothing changedMatthias Braun2016-12-051-4/+13
| | | | llvm-svn: 288647
* [X86] Remove unnecessary explicit uses of .SimpleTy just to do an equality ↵Craig Topper2016-12-051-11/+11
| | | | | | comparison. MVT's operator== already takes care of this. NFCI llvm-svn: 288646
* Adapt to llvm/TableGen DagInit changes.Matthias Braun2016-12-051-15/+20
| | | | llvm-svn: 288645
* TableGen: Use StringInit instead of std::string for DagInit arg namesMatthias Braun2016-12-058-57/+66
| | | | llvm-svn: 288644
* TableGen: Use StringInit instead of std::string for DagInit nameMatthias Braun2016-12-054-19/+22
| | | | llvm-svn: 288643
* TableGen: Use more StringInit instead of StringRefMatthias Braun2016-12-053-45/+39
| | | | | | | | This forces the code to call StringInit::get on the string early and avoids storing duplicates in std::string and sometimes allows pointer comparisons instead of string comparisons. llvm-svn: 288642
* [AVX-512] Teach fast isel to handle 512-bit vector bitcasts.Craig Topper2016-12-052-2/+252
| | | | llvm-svn: 288641
* Use Darwin libtool's -no_warning_for_no_symbols if available to silence the ↵Kuba Mracek2016-12-051-1/+14
| | | | | | | | | | "has no symbols" link warning Building compiler-rt on Darwin produces dozens of meaningless warnings about object files having no symbols during static archive creation. This is very intentional as compiler-rt uses #ifdefs to conditionally compile platform-specific code, and we even have a .cpp source file that only contains static asserts to make sure the environment is configured right. On Linux, this situation is fine and no warning is produced. This patch adds a libtool version detection and if it's new enough, we'll use the -no_warning_for_no_symbols flag that suppresses this warning. Build logs should be much cleaner now! Differential Revision: https://reviews.llvm.org/D27119 llvm-svn: 288640
* TableGen: Factor out STRCONCAT constructor, add shortcut.Matthias Braun2016-12-051-26/+25
| | | | | | | | Introduce new constructor for STRCONCAT binop with a shortcut that immediately concatenates if the two arguments are StringInits. Makes the QualifyName code more readable and tablegen 2-3% faster. llvm-svn: 288639
* TableGen/Record: Move PointerIntPair to less used field of RecordValMatthias Braun2016-12-052-10/+10
| | | | llvm-svn: 288638
* [Hexagon] Adding additional tokenization characters in preparation for ↵Colin LeMahieu2016-12-053-8/+2
| | | | | | removing spacing from syntax. llvm-svn: 288637
* [AVX-512] Teach fast isel to use masked compare and movss for handling ↵Craig Topper2016-12-052-294/+215
| | | | | | scalar cmp and select sequence when AVX-512 is enabled. This matches the behavior of normal isel. llvm-svn: 288636
* [AVX-512] Add avx512f command lines to fast isel SSE select test.Craig Topper2016-12-051-0/+314
| | | | | | Currently the fast isel code emits an avx1 instruction sequence even with avx512. This is different than normal isel. A follow up commit will fix this. llvm-svn: 288635
* [Hexagon] Changing from literal numeric value to argument since #-1 will not ↵Colin LeMahieu2016-12-056-21/+56
| | | | | | parse when '-' is converted to a token. llvm-svn: 288634
* [CMake] Use add_llvm_tool_symlink's OUTPUT_DIR optionChris Bieneman2016-12-051-1/+2
| | | | | | This is updating to take r288632 into account. llvm-svn: 288633
* [CMake] Refactor add_llvm_tool_symlink for reuseChris Bieneman2016-12-051-13/+24
| | | | | | The old implementation of add_llvm_tool_symlink could fail in odd ways when building out of tree. This version solves that problem by not using the LLVM_* variables, and instead reaeding the target's properties. llvm-svn: 288632
* Run the last iteration of parallel_for_loop using a threadpool.Rui Ueyama2016-12-051-3/+5
| | | | | | | Remainders of tasks were ran in the main thread, so parallel_for_each could theoretically take 2x time than the ideal. llvm-svn: 288631
* Simplify ICF alignment handling.Rui Ueyama2016-12-053-8/+4
| | | | llvm-svn: 288630
* IRGen: Remove an unused overload of CreateAlignedLoad.Peter Collingbourne2016-12-051-5/+0
| | | | llvm-svn: 288629
* [X86][XOP] Add target shuffle tests showing missing UNPCKL combine.Simon Pilgrim2016-12-041-0/+14
| | | | llvm-svn: 288628
* [X86][AVX512] Add target shuffle tests showing missing UNPCK combines.Simon Pilgrim2016-12-042-0/+64
| | | | llvm-svn: 288627
* Revert "Recover better from an incompatible .pcm file being provided by ↵Daniel Jasper2016-12-044-51/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | -fmodule-file=. We try to include the headers of the module textually in this case, still enforcing the modules semantic rules. In order to make that work, we need to still track that we're entering and leaving the module. Also, if the module was also marked as unavailable (perhaps because it was missing a file), we shouldn't mark the module unavailable -- we don't need the module to be complete if we're going to enter it textually." This reverts commit r288449. I believe that this is currently faulty wrt. modules being imported inside namespaces. Adding these lines to the new test: namespace n { #include "foo.h" } Makes it break with fatal error: import of module 'M' appears within namespace 'n' However, I believe it should fail with error: redundant #include of module 'M' appears within namespace 'n' I have tracked this down to us now inserting a tok::annot_module_begin instead of a tok::annot_module_include in Preprocessor::HandleIncludeDirective() and then later in Parser::parseMisplacedModuleImport(), we hit the code path for tok::annot_module_begin, which doesn't set FromInclude of checkModuleImportContext to true (thus leading to the "wrong" diagnostic). llvm-svn: 288626
* Update status page for variant implementationEric Fiselier2016-12-041-1/+1
| | | | llvm-svn: 288625
* [sanitizer] Make atos stdin a non-tty pipe to make sure it's not stuck ↵Kuba Mracek2016-12-041-37/+68
| | | | | | | | | | waiting for user input On macOS, we often symbolicate using atos (when llvm-symbolizer is not found). The current way we invoke atos involves creating a pseudo-terminal to make sure atos doesn't buffer its output. This however also makes atos think that it's stdin is interactive and in some error situations it will ask the user to enter some input instead of just printing out an error message. For example, when Developer Mode isn't enabled on a machine, atos cannot examine processes, and it will ask the user to enter an administrator's password, which will make the sanitized process get stuck. This patch only connects the pseudo-terminal to the stdout of atos, and uses a regular pipe as its stdin. Differential Revision: https://reviews.llvm.org/D27239 llvm-svn: 288624
* Choose better hash values for std::monostate and valueless variants.Eric Fiselier2016-12-041-2/+4
| | | | | | | | | | | Previously these hashes were 0 and -1 respectively. These seem like common sentinel values and should be avoided to prevent needless collisions. This patch changes those values to different arbitrary numbers, which should hopefully cause less collisions. Because I couldn't help myself I choose the fundamental constants for gravity and the speed of light. llvm-svn: 288623
* [X86] Mark 256-bit DPPS intrinsic as commutable to increase load matching ↵Craig Topper2016-12-041-1/+1
| | | | | | opportunities. llvm-svn: 288622
* [X86] Add Commutative property to several MMX arithmetic and logic intrinsics.Craig Topper2016-12-041-7/+7
| | | | | | I think these intrinsics were added after the Commutative was added to most of the rest of the intrinsics and it must have been forgotten. llvm-svn: 288621
* Re-implement the optimization that I removed in r288527.Rui Ueyama2016-12-041-23/+41
| | | | | | | | I removed a wrong optimization for ICF in r288527. Sean Silva suggested in a post commit review that the correct algorithm can be implemented easily. So is this patch. llvm-svn: 288620
* [stl-extras] Provide an adaptor of std::count for ranges.Michael Gottesman2016-12-042-0/+25
| | | | llvm-svn: 288619
* [AVR] Remove 'XFAIL' from a CodeGen testDylan McKay2016-12-041-1/+0
| | | | | | This seems to be fixed as of r288052. llvm-svn: 288618
* Don't discard .L symbol with -r.Rafael Espindola2016-12-042-1/+19
| | | | | | | | They might be used by relocations. Fixes pr31252. llvm-svn: 288617
* Always use / as the path separator.Rafael Espindola2016-12-041-1/+1
| | | | | | | It is not clear if it is worth the complexity to use \ on windows. This should fix the bots. llvm-svn: 288616
* Prefix path when displaying thin archives.Rafael Espindola2016-12-043-17/+24
| | | | | | Patch by Mark Santaniello. llvm-svn: 288615
* TableGen: Adapt to llvm r288612Matthias Braun2016-12-042-4/+4
| | | | llvm-svn: 288614
* TableGen: Store Records on a BumpPtrAllocatorMatthias Braun2016-12-042-67/+76
| | | | | | | All these records are internalized and will live until exit. This makes them perfect candidates for a fast BumpPtrAllocator. llvm-svn: 288613
* TableGen: Use StringRef instead of const std::string& in return vals.Matthias Braun2016-12-0420-49/+52
| | | | | | | This will allow to switch to a different string storage in an upcoming commit. llvm-svn: 288612
* TableGen: Optimize common string concatenation with SmallStringMatthias Braun2016-12-041-2/+7
| | | | llvm-svn: 288611
* TableGen: Use StringRef instead of const std::string& for parametersMatthias Braun2016-12-044-51/+44
| | | | | | | | This avoid an extra construction of a std::string (and a heap allocation) when the caller only has a StringRef but no std::string at hand. llvm-svn: 288610
* Update comment to clarify the machine spec.Rui Ueyama2016-12-041-4/+5
| | | | llvm-svn: 288609
* [Object][MachO] Reference-ify some helper function arguments. NFC.Lang Hames2016-12-041-201/+200
| | | | | | | Changes all static helper functions in MachOObjectFile.cpp that expect a non-null MachOObjectFile pointer to take a reference instead. llvm-svn: 288608
* [MC] Generalize MCContext's SectionSymbols field.Dan Gohman2016-12-032-5/+5
| | | | | | | Change SectionSymbols so that it doesn't hard-code ELF types, so that it can be used for non-ELF targets. llvm-svn: 288607
* Add comments about the use of threads in LLD.Rui Ueyama2016-12-031-0/+48
| | | | llvm-svn: 288606
OpenPOWER on IntegriCloud