| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
|
|
|
|
|
|
|
| |
...in an attempt to rein back the increasingly complex selection code.
A knock-on effect is that ICmpType is exposed from the outset, which
slightly simplifies adjustSubwordCmp.
The code is no piece of art even after this change, but at least it should
be slightly better. No behavioral change intended.
llvm-svn: 197235
|
| |
|
|
|
|
|
|
|
|
|
|
| |
InstCombine turns (sext (trunc)) into (ashr (shl)), then converts any
comparison of the ashr against zero into a comparison of the shl against zero.
This makes sense in itself, but we want to undo it for z, since the sign-
extension instruction has a CC-setting form.
I've included tests for both the original and InstCombined variants,
but the former already worked. The patch fixes the latter.
llvm-svn: 197234
|
| |
|
|
|
|
| |
uar_noreserve=1 will save some memory but also negatively affect performance
llvm-svn: 197233
|
| |
|
|
| |
llvm-svn: 197232
|
| |
|
|
| |
llvm-svn: 197229
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
width.
While it's safe for the X86-specific shift nodes, dag combining will
kill generic nodes. Insert an AND to make it safe, isel will nuke it
as x86's shift instructions have an implicit AND.
Fixes PR16108, which contains a contraption to hit this case in between
constant folders.
llvm-svn: 197228
|
| |
|
|
| |
llvm-svn: 197226
|
| |
|
|
|
|
| |
with a temporary assertion and adjust the various test cases.
llvm-svn: 197224
|
| |
|
|
|
|
|
|
|
|
|
| |
branch instructions for mips and micromips instruction sets thus avoiding
the situation of generating branches to undesired locations if offsets
cannot be encoded.
This patch also checks if a fixup cannot be applied and returns a fatal error
if that's the case.
llvm-svn: 197223
|
| |
|
|
|
|
|
| |
Needed to change rename.m to set the right include path so we don't
import a broken module due to recursive module checking.
llvm-svn: 197222
|
| |
|
|
|
|
|
|
|
| |
statements that define to the same integral value on my Linux (Ubuntu 12.04, x86_64). It's for SIGIO and SIGPOLL.
In the case that they are both defined the same.
Patch by Todd Fiala (but typos are mine)
llvm-svn: 197221
|
| |
|
|
| |
llvm-svn: 197220
|
| |
|
|
| |
llvm-svn: 197219
|
| |
|
|
| |
llvm-svn: 197218
|
| |
|
|
|
|
|
| |
/EXPORT command line option can take an ordinal, NONAME flag, and DATA flag.
This patch is to parse these optional arguments.
llvm-svn: 197217
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
through an invoke instruction.
The original patch for this was written by Mark Seaborn, but I've
reworked his test case into the existing returns_twice test case and
implemented the fix by the prior refactoring to actually run the cost
analysis over invoke instructions, and then here fixing our detection of
the returns_twice attribute to work for both calls and invokes. We never
noticed because we never saw an invoke. =[
llvm-svn: 197216
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
handles terminator instructions.
The inline cost analysis inheritted some pretty rough handling of
terminator insts from the original cost analysis, and then made it much,
much worse by factoring all of the important analyses into a separate
instruction visitor. That instruction visitor never visited the
terminator.
This works fine for things like conditional branches, but for many other
things we simply computed The Wrong Value. First example are
unconditional branches, which should be free but were counted as full
cost. This is most significant for conditional branches where the
condition simplifies and folds during inlining. We paid a 1 instruction
tax on every branch in a straight line specialized path. =[
Oh, we also claimed that the unreachable instruction had cost.
But it gets worse. Let's consider invoke. We never applied the call
penalty. We never accounted for the cost of the arguments. Nope. Worse
still, we didn't handle the *correctness* constraints of not inlining
recursive invokes, or exception throwing returns_twice functions. Oops.
See PR18206. Sadly, PR18206 requires yet another fix, but this
refactoring is at least a huge step in that direction.
llvm-svn: 197215
|
| |
|
|
|
|
| |
I should have run it before submitting but forgot to do that. Doing it now...
llvm-svn: 197214
|
| |
|
|
|
|
|
|
| |
The only data in .edata whose length varies is the string. This patch moves
all the strings to the end of the section, so that 16-bit or 32-bit integers
are aligned on correct boundaries.
llvm-svn: 197213
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is the first patch to emit data for the DLL export table. The DLL export
table is the data used by the Windows loader to find the address of exported
function from DLL. With this patch, LLD is able to emit a valid DLL export
table which the Windows loader can interpret and load.
The data structure of the DLL export table is described in the Microsoft
PE/COFF Specification, section 5.3.
DLL support is not complete yet; the linker needs to emit an import library
for a DLL, otherwise the linker cannot link against the DLL. We also do not
support export-only-by-ordinal yet.
llvm-svn: 197212
|
| |
|
|
|
|
|
|
| |
appropriate comdat grouping and type unit headers"
This reverts commit r197210.
llvm-svn: 197211
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
comdat grouping and type unit headers
This commit does not complete the type units feature - there are issues
around fission support (skeletal type units, pubtypes/pubnames) and
hashing of some types including those containing references to types in
other type units.
Originally committed as r197073 and reverted in r197079.
Recommitted as r197197 to reproduce the failure and reverted as r197199
Turns out there was unstable ordering in the type unit dumping code.
Fixed by using MapVector in DWARFContext to store the debug_types
comdat sections.
llvm-svn: 197210
|
| |
|
|
|
|
| |
handle indirect protocols.
llvm-svn: 197209
|
| |
|
|
| |
llvm-svn: 197208
|
| |
|
|
|
|
|
|
|
| |
the protocol.
This removes an extra "note:", which wasn't really all that more useful
and overall reduces the diagnostic spew for this case.
llvm-svn: 197207
|
| |
|
|
| |
llvm-svn: 197206
|
| |
|
|
|
|
|
|
|
| |
Since gcc 4.6 the compiler uses ___chkstk_ms which has the same semantics as the
MS CRT function __chkstk. This simplifies the prologue generation a bit.
Reviewed by Rafael Espíndola.
llvm-svn: 197205
|
| |
|
|
|
|
|
| |
The previous definition was wrong. See Microsoft PE/COFF specification
section 5.3.2.
llvm-svn: 197204
|
| |
|
|
|
|
|
|
|
| |
superclass are,
assume that a [super init..] inside a designated initializer also refers to a designated one
and do not warn.
llvm-svn: 197202
|
| |
|
|
|
|
| |
We had lld::coff and lld::pecoff namespaces for no reason. Unify them.
llvm-svn: 197201
|
| |
|
|
|
|
| |
memcpy'ed so we don't crash in a fiery ball of death when running the test suite on darwin.
llvm-svn: 197200
|
| |
|
|
|
|
|
|
| |
appropriate comdat grouping and type unit headers"
This reverts commit r197197.
llvm-svn: 197199
|
| |
|
|
|
|
|
|
|
|
|
| |
This option tells llvm-cov to print out branch probabilities when
a basic block contains multiple branches. It also prints out some
function summary info including the number of times the function enters,
the percent of time it returns, and how many blocks were executed.
Also updated tests.
llvm-svn: 197198
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
comdat grouping and type unit headers
This commit does not complete the type units feature - there are issues
around fission support (skeletal type units, pubtypes/pubnames) and
hashing of some types including those containing references to types in
other type units.
Originally committed as r197073 and reverted in r197079.
This commit originally got jumbled up with another build-breaking commit
and I can't find the failures I thought this caused anymore.
Recommitting to hopefully get some clean buildbot results to work from.
I have a sneaking suspicion there's unstable output in the comdat group
output of MCStreamer...
llvm-svn: 197197
|
| |
|
|
|
|
| |
No functional change, just a tidying up.
llvm-svn: 197196
|
| |
|
|
|
|
|
|
| |
The old URL hasn't worked for quite some time. While we are here, also
change the link so that it will send us straight to the mangling portion
of the ABI doc.
llvm-svn: 197195
|
| |
|
|
|
|
|
| |
No functionality change. Only Itanium C++ destructors have implicit VTT
parameters.
llvm-svn: 197194
|
| |
|
|
|
|
|
| |
We will need to do some work here if we want to play nice with MSVC2013.
Add a TODO indicating what changed and why this matters.
llvm-svn: 197193
|
| |
|
|
|
|
|
|
|
| |
This reverts commit r197184.
Richard Smith brings up some good points, a proper implementation will
require us to mangle unnameable entities compatibly with MSVC.
llvm-svn: 197192
|
| |
|
|
|
|
| |
'slice' or 'composite' key/value pairs).
llvm-svn: 197191
|
| |
|
|
|
|
|
|
|
| |
libdispatch aka Grand Central Dispatch (GCD) queues. Still fleshing out the
documentation and testing of these but the overall API is settling down so it's
a good time to check it in.
<rdar://problem/15600370>
llvm-svn: 197190
|
| |
|
|
|
|
|
| |
No functionality change. The only remaining uses were in ItaniumCXXABI,
which knows the implicit parameter is a VTT.
llvm-svn: 197189
|
| |
|
|
| |
llvm-svn: 197188
|
| |
|
|
|
|
|
|
| |
property and protocol name.
Implements <rdar://problem/15617839>.
llvm-svn: 197187
|
| |
|
|
|
|
|
|
| |
The check for bitfields that are longer than their base type needed to
be checked in microsoft mode (cl.exe does not support the C++ extnetion
for bitfields longer than their type).
llvm-svn: 197186
|
| |
|
|
| |
llvm-svn: 197185
|
| |
|
|
|
|
|
| |
They are mangled the same as normal references, nothing special is going
on here.
llvm-svn: 197184
|
| |
|
|
|
|
|
|
|
| |
This refactor addresses bugzilla bug 18167 and simplifies the code at
the same time. Also I add a test case for the bug. Also I make a
non-functional change to the basic layout lit tests to make them more
reliable (using CHECK-NEXT instead of CHECK).
llvm-svn: 197183
|
| |
|
|
|
|
| |
debugserver's launch info was cleared unnecessarily. It has important user ID set. Reviewed by Greg Clayton.
llvm-svn: 197182
|
| |
|
|
|
|
| |
Triple::getEnvironment.
llvm-svn: 197181
|