| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
| |
llvm-svn: 288653
|
| |
|
|
|
|
|
|
| |
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
|
| |
|
|
| |
llvm-svn: 288651
|
| |
|
|
| |
llvm-svn: 288650
|
| |
|
|
| |
llvm-svn: 288649
|
| |
|
|
| |
llvm-svn: 288648
|
| |
|
|
| |
llvm-svn: 288647
|
| |
|
|
|
|
| |
comparison. MVT's operator== already takes care of this. NFCI
llvm-svn: 288646
|
| |
|
|
| |
llvm-svn: 288645
|
| |
|
|
| |
llvm-svn: 288644
|
| |
|
|
| |
llvm-svn: 288643
|
| |
|
|
|
|
|
|
| |
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
|
| |
|
|
| |
llvm-svn: 288641
|
| |
|
|
|
|
|
|
|
|
| |
"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
|
| |
|
|
|
|
|
|
| |
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
|
| |
|
|
| |
llvm-svn: 288638
|
| |
|
|
|
|
| |
removing spacing from syntax.
llvm-svn: 288637
|
| |
|
|
|
|
| |
scalar cmp and select sequence when AVX-512 is enabled. This matches the behavior of normal isel.
llvm-svn: 288636
|
| |
|
|
|
|
| |
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
|
| |
|
|
|
|
| |
parse when '-' is converted to a token.
llvm-svn: 288634
|
| |
|
|
|
|
| |
This is updating to take r288632 into account.
llvm-svn: 288633
|
| |
|
|
|
|
| |
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
|
| |
|
|
|
|
|
| |
Remainders of tasks were ran in the main thread, so parallel_for_each
could theoretically take 2x time than the ideal.
llvm-svn: 288631
|
| |
|
|
| |
llvm-svn: 288630
|
| |
|
|
| |
llvm-svn: 288629
|
| |
|
|
| |
llvm-svn: 288628
|
| |
|
|
| |
llvm-svn: 288627
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
-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
|
| |
|
|
| |
llvm-svn: 288625
|
| |
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
| |
opportunities.
llvm-svn: 288622
|
| |
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
| |
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
|
| |
|
|
| |
llvm-svn: 288619
|
| |
|
|
|
|
| |
This seems to be fixed as of r288052.
llvm-svn: 288618
|
| |
|
|
|
|
|
|
| |
They might be used by relocations.
Fixes pr31252.
llvm-svn: 288617
|
| |
|
|
|
|
|
| |
It is not clear if it is worth the complexity to use \ on
windows. This should fix the bots.
llvm-svn: 288616
|
| |
|
|
|
|
| |
Patch by Mark Santaniello.
llvm-svn: 288615
|
| |
|
|
| |
llvm-svn: 288614
|
| |
|
|
|
|
|
| |
All these records are internalized and will live until exit. This makes
them perfect candidates for a fast BumpPtrAllocator.
llvm-svn: 288613
|
| |
|
|
|
|
|
| |
This will allow to switch to a different string storage in an upcoming
commit.
llvm-svn: 288612
|
| |
|
|
| |
llvm-svn: 288611
|
| |
|
|
|
|
|
|
| |
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
|
| |
|
|
| |
llvm-svn: 288609
|
| |
|
|
|
|
|
| |
Changes all static helper functions in MachOObjectFile.cpp that expect a
non-null MachOObjectFile pointer to take a reference instead.
llvm-svn: 288608
|
| |
|
|
|
|
|
| |
Change SectionSymbols so that it doesn't hard-code ELF types, so that
it can be used for non-ELF targets.
llvm-svn: 288607
|
| |
|
|
| |
llvm-svn: 288606
|