- Oct 09, 2018
-
-
Nemanja Ivanovic authored
llvm-svn: 344037
-
Nemanja Ivanovic authored
There are occasionally instances where AADB rewrites registers in such a way that a reg-reg copy becomes a self-copy. Such an instruction is obviously redundant and can be removed. This patch does precisely that. Note that this will not remove various nop's that we insert (which are themselves just self-copies). The reason those are left alone is that all of them have their own opcodes (that just encode to a self-copy). What prompted this patch is the fact that these self-copies sometimes end up using registers that make the instruction a priority-setting nop, thereby having a significant effect on performance. Differential revision: https://reviews.llvm.org/D52432 llvm-svn: 344036
-
Kamil Rytarowski authored
LSan/NetBSD is still in development (Stop-The-World routine missed). llvm-svn: 344035
-
Kamil Rytarowski authored
PTHREAD_STACK_MIN is not available on NetBSD as it's not clear what the value shall be represented by this constant on a multiplatform OS. llvm-svn: 344034
-
Kadir Cetinkaya authored
Summary: Also change output of percent-encoding to use upper-case letters. Reviewers: sammccall Reviewed By: sammccall Subscribers: ilya-biryukov, ioeric, MaskRay, jkorous, arphaman, cfe-commits Differential Revision: https://reviews.llvm.org/D53016 llvm-svn: 344033
-
Guillaume Chatelet authored
llvm-svn: 344032
-
Kristof Umann authored
Differential Revision: https://reviews.llvm.org/D52993 llvm-svn: 344031
-
Sam McCall authored
llvm-svn: 344030
-
Guillaume Chatelet authored
llvm-svn: 344029
-
Guillaume Chatelet authored
Summary: This moves checking logic into the accessors and makes the structure smaller. It will also help when/if Operand are generated from the TD files. Subscribers: tschuett, courbet, llvm-commits Differential Revision: https://reviews.llvm.org/D52982 llvm-svn: 344028
-
Aleksandr Urakov authored
Summary: This patch forces the alignment of the `data` field of `IntervalMap`. It is because x86 MSVC doesn't apply automatically (without `__declspec(align(...))`) alignments more than 4 bytes, even if `alignof` has returned so. Consider the example: https://godbolt.org/z/zIPa_G Here `alignof` for both `S0` and `S1` returns `8`, but only `S1` is really aligned on x86. The explanation of this behavior is here: https://docs.microsoft.com/en-us/cpp/build/conflicts-with-the-x86-compiler Reviewers: bkramer, stoklund, hans, rnk Reviewed By: rnk Subscribers: dexonsmith, llvm-commits Differential Revision: https://reviews.llvm.org/D52613 llvm-svn: 344027
-
Stephen Kelly authored
llvm-svn: 344026
-
Kadir Cetinkaya authored
Summary: Also add a few new test cases and a special case into handling of empty fixit ranges that collides with location of a diag. Reviewers: sammccall, ilya-biryukov Reviewed By: sammccall Subscribers: ilya-biryukov, ioeric, MaskRay, jkorous, arphaman, cfe-commits Differential Revision: https://reviews.llvm.org/D52889 llvm-svn: 344025
-
Eric Liu authored
Summary: Main file can certainly change when reusing preamble. Reviewers: sammccall Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, kadircet, cfe-commits Differential Revision: https://reviews.llvm.org/D52991 llvm-svn: 344024
-
Stephen Kelly authored
llvm-svn: 344023
-
Stephen Kelly authored
llvm-svn: 344022
-
Stephen Kelly authored
llvm-svn: 344021
-
Aleksandr Urakov authored
This reverts commit 7f9eb168a9a8f5ff4fc931a00aec43e8706afecb. llvm-svn: 344020
-
Simon Pilgrim authored
As discussed on D52964, this adds 256-bit *_EXTEND_VECTOR_INREG lowering support for AVX1 targets to help improve SimplifyDemandedBits handling. Differential Revision: https://reviews.llvm.org/D52980 llvm-svn: 344019
-
Aleksandr Urakov authored
Summary: This patch forces the alignment of the `data` field of `IntervalMap`. It is because x86 MSVC doesn't apply automatically (without `__declspec(align(...))`) alignments more than 4 bytes, even if `alignof` has returned so. Consider the example: https://godbolt.org/z/zIPa_G Here `alignof` for both `S0` and `S1` returns `8`, but only `S1` is really aligned on x86. The explanation of this behavior is here: https://docs.microsoft.com/en-us/cpp/build/conflicts-with-the-x86-compiler Reviewers: bkramer, stoklund, hans, rnk Reviewed By: rnk Subscribers: dexonsmith, llvm-commits Differential Revision: https://reviews.llvm.org/D52613 llvm-svn: 344018
-
Gabor Horvath authored
Differential Revision: https://reviews.llvm.org/D52983 llvm-svn: 344017
-
Zinovy Nis authored
Differential Revision: https://reviews.llvm.org/D52971 llvm-svn: 344016
-
Zinovy Nis authored
(with alias -check-suffixes) to accept multiple comma-separated FileCheck prefixes. Usage: // RUN: %check_clang_tidy -check-suffix=USING-C,USING-D %s misc-unused-using-decls %t -- -- ... or for the same: // RUN: %check_clang_tidy -check-suffixes=USING-C,USING-D %s misc-unused-using-decls %t -- -- ... Differential Revision: https://reviews.llvm.org/D52971 llvm-svn: 344015
-
Chandler Carruth authored
prefix. Use this to direct these files to a specific location in the test suite so that we don't write files out to random directories (or fail if the working directory isn't writable). llvm-svn: 344014
-
George Burgess IV authored
This is the second in a series of changes intended to make https://reviews.llvm.org/D44748 more easily reviewable. Please see that patch for more context. The first change being r344012. Since I was requested to do all of this with post-commit review, this is about as small as I can make this patch. This patch makes LocationSize into an actual type that wraps a uint64_t; users are required to call getValue() in order to get the size now. If the LocationSize has an Unknown size (e.g. if LocSize == MemoryLocation::UnknownSize), getValue() will assert. This also adds DenseMap specializations for LocationInfo, which required taking two more values from the set of values LocationInfo can represent. Hence, heavy users of multi-exabyte arrays or structs may observe slightly lower-quality code as a result of this change. The intent is for getValue()s to be very close to a corresponding hasValue() (which is often spelled `!= MemoryLocation::UnknownSize`). Sadly, small diff context appears to crop that out sometimes, and the last change in DSE does require a bit of nonlocal reasoning about control-flow. :/ This also removes an assert, since it's now redundant with the assert in getValue(). llvm-svn: 344013
-
George Burgess IV authored
This is one of a series of changes intended to make https://reviews.llvm.org/D44748 more easily reviewable. Please see that patch for more context. Since I was requested to do all of this with post-commit review, this is about as small as I can make it (beyond committing changes to these few files separately, but they're incredibly similar in spirit, so...) On its own, this change doesn't make a great deal of sense. I plan on having a follow-up Real Soon Now(TM) to make the bits here make more sense. :) In particular, the next change in this series is meant to make LocationSize an actual type, which you have to call .getValue() on in order to get at the uint64_t inside. Hence, this change refactors code so that: - we only need to call the soon-to-come getValue() once in most cases, and - said call to getValue() happens very closely to a piece of code that checks if the LocationSize has a value (e.g. if it's != UnknownSize). llvm-svn: 344012
-
David Blaikie authored
This might produce hard to read/illegible diagnostics for especially weird/non-trivial module metadata but integers are about all we are using these days, so seems more useful than not. Patch based on work by Kristina Brooks - thanks! Differential Revision: https://reviews.llvm.org/D52952 llvm-svn: 344011
-
Fangrui Song authored
Summary: This makes BindingDecl's of the same name have different USRs, so that references can be correctly attributed. int a[1] = {}; { auto [x] = a; x; } { auto [x] = a; x; } Reviewers: akyrtzi, arphaman, rsmith, hokein Reviewed By: hokein Subscribers: cfe-commits Differential Revision: https://reviews.llvm.org/D52445 llvm-svn: 344010 -
Thomas Lively authored
Reviewers: aheejin, dschuff Subscribers: sbc100, jgravelle-google, sunfish, jfb, kristina, cfe-commits Differential Revision: https://reviews.llvm.org/D53007 llvm-svn: 344009
-
Matthias Braun authored
One case left around nonsensical operands for the KILL instruction which the machine verifier checks for nowadays. While this should not hurt in release builds we should fix the machine verifier errors anyway. llvm-svn: 344008
-
Petar Jovanovic authored
Custom legalize s64 G_ADD for MIPS32. Patch by Petar Avramovic. Differential Revision: https://reviews.llvm.org/D52652 llvm-svn: 344007
-
Matthias Braun authored
llvm-svn: 344006
-
Matthias Braun authored
The comment was contradicting the code. Looking at history the feature was implemented a day after the comment was written without dropping the comment. llvm-svn: 344005
-
Matthias Braun authored
This makes print-machineinstrs print the slot indexes in more situations. NFC for normal compilation. llvm-svn: 344004
-
Nico Weber authored
Warn that references to regular env vars are ignored. Fixes PR38940. Differential Revision: https://reviews.llvm.org/D52942 llvm-svn: 344003
-
Zachary Turner authored
llvm-svn: 344002
-
Zachary Turner authored
When we're looking up a record in the last hash bucket chain, we need to be careful with the end-offset calculation. llvm-svn: 344001
-
Ali Tamur authored
Summary: gcc defines macros such as __code_model_small_ based on the user passed command line flag -mcmodel. clang accepts a flag with the same name and similar effects, but does not generate any macro that the user can use. This cl narrows the gap between gcc and clang behaviour. However, achieving full compatibility with gcc is not trivial: The set of valid values for mcmodel in gcc and clang are not equal. Also, gcc defines different macros for different architectures. In this cl, we only tackle an easy part of the problem and define the macro only for x64 architecture. When the user does not specify a mcmodel, the macro for small code model is produced, as is the case with gcc. Reviewers: compnerd, MaskRay Reviewed By: MaskRay Subscribers: cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D52920 llvm-svn: 344000
-
Petar Jovanovic authored
Remove the space in the asm check so that the expression is more general and can also capture MIPS labels which can be surrounded by braces, e.g.: .4byte ($tmp1) # DW_AT_low_pc Also change optimization level to O0 because the DW_TAG_label does not appear on MIPS when -O2 is used. Patch by Milos Stojanovic. Differential Revision: https://reviews.llvm.org/D52901 llvm-svn: 343999
-
Rong Xu authored
Some buildbots failed. llvm-svn: 343998
-