| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
| |
llvm-svn: 252831
|
| |
|
|
| |
llvm-svn: 252830
|
| |
|
|
| |
llvm-svn: 252829
|
| |
|
|
| |
llvm-svn: 252828
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Summary: Diagnose when a function concept declaration has parameter(s)
Reviewers: rsmith, faisalv, aaron.ballman, hubert.reinterpretcast
Subscribers: cfe-commits
Differential Revision: http://reviews.llvm.org/D14352
llvm-svn: 252827
|
| |
|
|
|
|
|
|
| |
Differential Revision: http://reviews.llvm.org/D14357
rdar://problem/21942589
llvm-svn: 252825
|
| |
|
|
|
|
|
| |
For really simple SEH catchpads, we tried to forward the invoke unwind
edge across the empty block.
llvm-svn: 252822
|
| |
|
|
|
|
| |
rdar://problem/9001553
llvm-svn: 252820
|
| |
|
|
|
|
|
| |
features for a particular function, then use it to clean up some
code.
llvm-svn: 252819
|
| |
|
|
|
|
|
|
|
|
|
| |
First create a list of candidates, then transform. This simplifies the code in
that you have don't have to worry that you may be using an invalidated
iterator.
Previously, each time we created a memset/memcpy we would reevaluate the entire
loop potentially resulting in lots of redundant work for large basic blocks.
llvm-svn: 252817
|
| |
|
|
| |
llvm-svn: 252815
|
| |
|
|
|
|
|
|
|
|
|
|
| |
This is about how we handle static member of a template. Before this commit,
we use internal linkage for the IR thread-local variable, which is inefficient.
With this commit, we will start to follow Itanium C++ ABI.
rdar://problem/23415206
Reviewed by John McCall.
llvm-svn: 252814
|
| |
|
|
|
|
|
| |
Check if a value that is referenced by a parameter is dead and do not
generate code for the parameter in such a case.
llvm-svn: 252813
|
| |
|
|
| |
llvm-svn: 252812
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
When working with tokens, it is often the case that one has instructions
which consume a token and produce a new token. Currently, we have no
mechanism to represent an initial token state.
Instead, we can create a notional "empty token" by inventing a new
constant which captures the semantics we would like. This new constant
is called ConstantTokenNone and is written textually as "token none".
Differential Revision: http://reviews.llvm.org/D14581
llvm-svn: 252811
|
| |
|
|
|
|
| |
This allows TEST_SUITE variables to be passed from the top-level CMake into the external project.
llvm-svn: 252810
|
| |
|
|
|
|
| |
This allows COMPILER_RT_* variables to be passed from the top-level CMake into the external project when LLVM_BUILD_EXTERNAL_COMPILER_RT=On.
llvm-svn: 252809
|
| |
|
|
|
|
|
|
| |
of the compiler command line
Setting CMAKE_*_FLAGS isn't sufficient here because CMAKE_*_FLAGS_${CMAKE_BUILD_TYPE} can override the flags, and there is no way to safely clear that because it is a cached variable (<sarcasm> YAY! </sarcasm>).
llvm-svn: 252807
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
This change introduces the notion of "deoptimization" operand bundles.
LLVM can recognize and optimize these in more precise ways than it can a
generic "unknown" operand bundles.
The current form of this special recognition / optimization is an enum
entry in LLVMContext, a LangRef blurb and a verifier rule. Over time we
will teach LLVM to do more aggressive optimization around deoptimization
operand bundles, exploiting known facts about kinds of state
deoptimization operand bundles are allowed to track.
Reviewers: reames, majnemer, chandlerc, dexonsmith
Subscribers: llvm-commits
Differential Revision: http://reviews.llvm.org/D14551
llvm-svn: 252806
|
| |
|
|
| |
llvm-svn: 252805
|
| |
|
|
|
|
|
|
| |
Summary: MSVC gets confused.
Differential Revision: http://reviews.llvm.org/D14585
llvm-svn: 252804
|
| |
|
|
|
|
|
|
| |
This had been relegated to a simple forwarding function, so just
delete it in preparation of migrating all of these functions out
of python-wrapper.swig.
llvm-svn: 252803
|
| |
|
|
|
|
|
|
|
|
|
| |
First batch of sancov.py rewrite in c++.
Supports "-print" and "-coveredfns" commands.
Followup to http://reviews.llvm.org/D14356 in a better location.
Differential Revision: http://reviews.llvm.org/D14579
llvm-svn: 252801
|
| |
|
|
| |
llvm-svn: 252800
|
| |
|
|
| |
llvm-svn: 252799
|
| |
|
|
|
|
| |
Differential Revision: http://reviews.llvm.org/D13671
llvm-svn: 252798
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Cwd::abs_path has a somewhat tricky semantics: if it's operand directory does not exist,
it'll return undefined (see https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=257568).
This may cause scan-build to silently ignore output directory (specified with -o) and
use /tmp instead of trying to create directory. This tiny patch fixes the problem.
A patch by Yury Gribov!
Differential Revision: http://reviews.llvm.org/D14535
llvm-svn: 252797
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is a step towards consolidating some of the information regarding
attributes in a single place.
This patch moves the enum attributes in Attributes.h to the table-gen
file. Additionally, it adds definitions of target independent string
attributes that will be used in follow-up commits by the inliner to
check attribute compatibility.
rdar://problem/19836465
llvm-svn: 252796
|
| |
|
|
|
|
| |
I got this the other way around in 252750. Thank you Johannes for noticing.
llvm-svn: 252795
|
| |
|
|
|
|
|
|
|
|
| |
Error blocks may contain arbitrary instructions, among them some which we can
not modeled correctly. As we do not generate ScopStmts for error blocks anyhow
there is no point in trying to generate access functions for them.
This fixes llvm.org/PR25494
llvm-svn: 252794
|
| |
|
|
| |
llvm-svn: 252793
|
| |
|
|
| |
llvm-svn: 252792
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is a follow-up from the previous discussion on the thread:
http://lists.llvm.org/pipermail/llvm-commits/Week-of-Mon-20151019/307763.html
The LibLTO lto_get_error_message() API reads error messages from a std::string
sLastErrorString. Instead of passing this string around as an argument, this
patch creates a diagnostic handler and then sends this handler to the
constructor of LTOCodeGenerator.
Differential Revision: http://reviews.llvm.org/D14313
llvm-svn: 252791
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
This adds support for:
* Uniquing CIEs
* Dropping FDEs that point to dropped sections
It drops 657 488 bytes from the .eh_frame of a Release+Asserts clang.
The link time impact is smallish. Linking clang with a Release+Asserts
lld goes from 0.488064805 seconds to 0.504763060 seconds (1.034 X slower).
llvm-svn: 252790
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
Don't fold
(zext (and (load x), cst)) -> (and (zextload x), (zext cst))
if
(and (load x) cst)
will match as a zextload already and has additional users.
For example, the following IR:
%load = load i32, i32* %ptr, align 8
%load16 = and i32 %load, 65535
%load64 = zext i32 %load16 to i64
store i32 %load16, i32* %dst1, align 4
store i64 %load64, i64* %dst2, align 8
used to produce the following aarch64 code:
ldr w8, [x0]
and w9, w8, #0xffff
and x8, x8, #0xffff
str w9, [x1]
str x8, [x2]
but with this change produces the following aarch64 code:
ldrh w8, [x0]
str w8, [x1]
str x8, [x2]
Reviewers: resistor, mcrosier
Subscribers: llvm-commits
Differential Revision: http://reviews.llvm.org/D14340
llvm-svn: 252789
|
| |
|
|
|
|
|
|
|
| |
This only begins to port python-wrapper.swig over. Since this
code can be pretty hairy, I plan to do this incrementally over a
series of patches, each time removing or converting more code
over to the PythonDataObjects code.
llvm-svn: 252788
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
This adds PythonTuple and PythonCallable classes to PythonDataObjects.
Additionally, unit tests are provided that exercise this functionality,
including invoking manipulating and checking for validity of tuples,
and invoking and checking for validity of callables using a variety
of different syntaxes.
The goal here is to eventually replace the code in python-wrapper.swig
that directly uses the Python C API to deal with callables and name
resolution with this code that can be more easily tested and debugged.
llvm-svn: 252787
|
| |
|
|
| |
llvm-svn: 252786
|
| |
|
|
|
|
|
| |
Expected diagnostics have been expanded to vary by C++ dialect.
RUN line has also been expanded to: default, C++98/03 and C++11.
llvm-svn: 252785
|
| |
|
|
| |
llvm-svn: 252784
|
| |
|
|
| |
llvm-svn: 252783
|
| |
|
|
| |
llvm-svn: 252782
|
| |
|
|
|
|
| |
Just a tiny piece of index dumping - the header in this instance.
llvm-svn: 252781
|
| |
|
|
| |
llvm-svn: 252780
|
| |
|
|
| |
llvm-svn: 252779
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Summary: Other personalities don't use this special frame slot.
Reviewers: majnemer, andrew.w.kaylor, rnk
Subscribers: llvm-commits
Differential Revision: http://reviews.llvm.org/D14580
llvm-svn: 252778
|
| |
|
|
|
|
|
|
| |
We used to emit the store prior to branch in the entry block. To make it more
efficient, this commit moves it to the init block. We still mark as initialized
before initializing anything else.
llvm-svn: 252777
|
| |
|
|
|
|
|
|
|
|
|
| |
This patch adds DWARF values for the Delphi language and Borland C++
language extensions.
Reviewed by: dblaikie
Subscribers: llvm-commits, majnemer
Differential Revision: http://reviews.llvm.org/D14522
llvm-svn: 252776
|
| |
|
|
| |
llvm-svn: 252775
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
Fix bug in suggested fix that truncated variable names to 1 character.
Also, rework the suggested fix to try to remove unnecessary whitespace.
Reviewers: alexfh, aaron.ballman
Subscribers: cfe-commits
Differential Revision: http://reviews.llvm.org/D13899
llvm-svn: 252773
|