| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
Source-centric tools need access to the location of a C++11
lambda expression's capture-default ('&' or '=') when it's present.
It's possible for them to find it by re-lexing and re-implementing
rules that Clang's parser has already applied, but the cost of storing
the SourceLocation and making it available to them is 32 bits per
LambdaExpr (a small delta, proportionally), and the simplification in
client code is significant.
Reviewers: rsmith
Reviewed By: rsmith
CC: cfe-commits, klimek, revane
Differential Revision: http://llvm-reviews.chandlerc.com/D1192
llvm-svn: 188121
|
| |
|
|
| |
llvm-svn: 188120
|
| |
|
|
|
|
|
|
|
|
|
| |
This moves removeUnreachableBlocksFromFn from SimplifyCFGPass.cpp
to Utils/Local.cpp and uses it to replace the implementation of
llvm::removeUnreachableBlocks, which appears to do a strict subset
of what removeUnreachableBlocksFromFn does.
Differential Revision: http://llvm-reviews.chandlerc.com/D1334
llvm-svn: 188119
|
| |
|
|
| |
llvm-svn: 188117
|
| |
|
|
| |
llvm-svn: 188116
|
| |
|
|
| |
llvm-svn: 188114
|
| |
|
|
|
|
|
|
| |
under the args ABI.
Differential Revision: http://llvm-reviews.chandlerc.com/D1316
llvm-svn: 188113
|
| |
|
|
|
|
|
|
|
|
| |
comparing non-reference function parameters. The qualifiers don't matter for
comparisons.
This is a re-commit of r187769, which was accidentially reverted in r187770,
with a simplification at the suggestion of Eli Friedman.
llvm-svn: 188112
|
| |
|
|
|
|
|
| |
- The actual tests have better coverage than those, and they weren't useful
anymore.
llvm-svn: 188110
|
| |
|
|
| |
llvm-svn: 188109
|
| |
|
|
| |
llvm-svn: 188108
|
| |
|
|
| |
llvm-svn: 188107
|
| |
|
|
|
|
|
|
| |
I need to go through all the runtime routine list and see if there
are any more I need to add for mips16 floating point. Prototypes must
be correct or else I don't know to add a helper function call.
llvm-svn: 188106
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
blocks for each fail condition.
This patch decouples the stack protector pass so that we can support stack
protector implementations that do not use the IR level generated stack protector
fail basic block.
No codesize increase is caused by this change since the MI level tail merge pass
properly merges together the fail condition blocks (see the updated test).
llvm-svn: 188105
|
| |
|
|
| |
llvm-svn: 188103
|
| |
|
|
|
|
| |
- building on other platforms not supported yet
llvm-svn: 188102
|
| |
|
|
|
|
|
|
|
|
| |
separately because ParentMap does not record
Stmt parent nodes inside a BlockDecl.
Fixes rdar://14686900
llvm-svn: 188101
|
| |
|
|
| |
llvm-svn: 188097
|
| |
|
|
|
|
| |
- Noticed by edward-san (IRC).
llvm-svn: 188096
|
| |
|
|
|
|
|
|
| |
Use it to avoid repeating ourselves too often. Also store MVT::SimpleValueType
in the TTI tables so they can be statically initialized, MVT's constructors
create bloated initialization code otherwise.
llvm-svn: 188095
|
| |
|
|
|
|
|
|
|
|
| |
This fixes a problem when the path separator in the include/exclude
directory is different (e.g. "\" vs. "/") from the path separator in
the file path we are modifying.
Differential Revision: http://llvm-reviews.chandlerc.com/D1326
llvm-svn: 188094
|
| |
|
|
| |
llvm-svn: 188093
|
| |
|
|
| |
llvm-svn: 188092
|
| |
|
|
| |
llvm-svn: 188091
|
| |
|
|
| |
llvm-svn: 188090
|
| |
|
|
|
|
| |
include/clang/Basic/LLVM.h.
llvm-svn: 188089
|
| |
|
|
| |
llvm-svn: 188088
|
| |
|
|
| |
llvm-svn: 188087
|
| |
|
|
|
|
|
| |
Since r187945, clang-cl will add the runtime library dependency to
the .obj file.
llvm-svn: 188086
|
| |
|
|
|
|
|
|
|
|
|
|
| |
just ODR use.
This includes special members (copy/default ctor, copy assign, default
ctor) and template specializations for member function templates.
Good for a 5% decrease (1.80 to 1.71 GB) in size on Clang+LLVM's .dwo
files (when using fission).
llvm-svn: 188085
|
| |
|
|
|
|
| |
No functionality change.
llvm-svn: 188084
|
| |
|
|
|
|
| |
Avoids unnecessary static constructors.
llvm-svn: 188083
|
| |
|
|
|
|
|
|
|
|
| |
constructed
This is necessary to allow Clang to only emit implicit members when
there is code generated for them, rather than whenever they are ODR
used.
llvm-svn: 188082
|
| |
|
|
|
|
|
| |
This trades some complexity in operator== for not introducing static objects
into any functions using recursive directory iterators.
llvm-svn: 188081
|
| |
|
|
|
|
| |
http://llvm.org/bugs/show_bug.cgi?id=16839
llvm-svn: 188080
|
| |
|
|
|
|
|
|
|
|
|
|
| |
The compiler was warning about using | on a uintptr_t and bool:
Object/ELFObjectFile.h(131) : warning C4805: '|' : unsafe
mix of type 'uintptr_t' and type 'bool' in operation
I think the warning might be useful in other cases, so I added
a cast instead of disabling it altogether.
llvm-svn: 188079
|
| |
|
|
|
|
|
|
| |
- updated RNBDefs.h to allow version numbers to be passed in via preprocessor defines
- update libdebugserver.cpp to compile against latest DNBProcessKill signature
Review: http://llvm-reviews.chandlerc.com/D1331
llvm-svn: 188078
|
| |
|
|
|
|
| |
draft. However I was looking at it and with some experimentation realized that I could partially implement it, and at the same time offer a performance optimization to cout. I simply added an xsputn override to the cout filebuf. The override does nothing special at all if there is a non-trivial codecvt installed. However if the codecvt returns true for always_noconv(), then this function can dump an entire string to fwrite, instead of doing it a character at a time under overflow(). This just makes sense. I stopped short of a full implementation of N3665 because in order to do so, xsputn would have to allocate a buffer when always_noconv() returned false, and I don't want to go to that expense.
llvm-svn: 188077
|
| |
|
|
| |
llvm-svn: 188076
|
| |
|
|
|
|
| |
Patch by Richard Mitton.
llvm-svn: 188075
|
| |
|
|
| |
llvm-svn: 188074
|
| |
|
|
| |
llvm-svn: 188073
|
| |
|
|
| |
llvm-svn: 188072
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
In Thumb1, only one variant is supported: CPS{effect} {flags}
Thumb2 supports three:
CPS{effect}.W {flags}
CPS{effect} {flags} {mode}
CPS {mode}
Canonically, .W should be used only when ambiguity is present between encodings of different width.
The wide suffix is still accepted for the latter two forms via aliases.
llvm-svn: 188071
|
| |
|
|
| |
llvm-svn: 188070
|
| |
|
|
|
|
|
| |
%n does not increase the input item count. The new code emits writes to %n
arguments even if it has run out of input items.
llvm-svn: 188069
|
| |
|
|
| |
llvm-svn: 188068
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The long encoding for Thumb2 unconditional branches is broken.
Additionally, there is no range checking for target operands; as such
for instructions originating in assembly code, only short Thumb encodings
are generated, regardless of the bitsize needed for the offset.
Adding range checking is non trivial due to the representation of Thumb
branch instructions. There is no true difference between conditional and
unconditional branches in terms of operands and syntax - even unconditional
branches have a predicate which is expected to match that of the IT block
they are in. Yet, the encodings and the permitted size of the offset differ.
Due to this, for any mnemonic there are really 4 encodings to choose for.
The problem cannot be handled in the parser alone or by manipulating td files.
Because the parser builds first a set of match candidates and then checks them
one by one, whatever tablegen-only solution might be found will ultimately be
dependent of the parser's evaluation order. What's worse is that due to the fact
that all branches have the same syntax and the same kinds of operands, that
order is governed by the lexicographical ordering of the names of operand
classes...
To circumvent all this, any necessary disambiguation is added to the instruction
validation pass.
llvm-svn: 188067
|
| |
|
|
| |
llvm-svn: 188066
|
| |
|
|
|
|
| |
it as readnone.
llvm-svn: 188065
|