| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
| |
128-bit versions and let the operand type disinquish. Also fix the load form of the v8i32 patterns for these to realize that the load would be promoted to v4i64.
llvm-svn: 145126
|
| |
|
|
|
|
| |
the 128-bit versions and let the vector type distinguish.
llvm-svn: 145125
|
| |
|
|
|
|
|
|
| |
a lot.
While at it pull the trivial ctor in line.
llvm-svn: 145124
|
| |
|
|
| |
llvm-svn: 145122
|
| |
|
|
| |
llvm-svn: 145121
|
| |
|
|
|
|
|
|
|
|
|
|
| |
need lots of fanciness around retaining a reference to a Chain's slot in
the BlockToChain map, but that's all gone now. We can just go directly
to allocating the new chain (which will update the mapping for us) and
using it.
Somewhat gross mechanically generated test case replicates the issue
Duncan spotted when actually testing this out.
llvm-svn: 145120
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
conflicts, we should only be adding the first block of the chain to the
list, lest we try to merge into the middle of that chain. Most of the
places we were doing this we already happened to be looking at the first
block, but there is no reason to assume that, and in some cases it was
clearly wrong.
I've added a couple of tests here. One already worked, but I like having
an explicit test for it. The other is reduced from a test case Duncan
reduced for me and used to crash. Now it is handled correctly.
llvm-svn: 145119
|
| |
|
|
| |
llvm-svn: 145118
|
| |
|
|
| |
llvm-svn: 145117
|
| |
|
|
| |
llvm-svn: 145116
|
| |
|
|
|
|
|
|
|
|
| |
pointer mismatch. Cases covered are: initialization, assignment, and function
arguments. Additional text will give the extra information about the nature
of the mismatch: different classes for member functions, wrong number of
parameters, different parameter type, different return type, and function
qualifier mismatch.
llvm-svn: 145114
|
| |
|
|
|
|
|
|
| |
- lower unaligned loads/stores.
- encode the size operand of instructions INS and EXT.
- emit relocation information needed for JAL (jump-and-link).
llvm-svn: 145113
|
| |
|
|
| |
llvm-svn: 145112
|
| |
|
|
| |
llvm-svn: 145111
|
| |
|
|
| |
llvm-svn: 145110
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
file region
inside an objc container that "contains" other file-level declarations.
When getting the array of file-level declarations that overlap with a file region,
we failed to report that the region overlaps with an objc container, if
the container had other file-level declarations declared lexically inside it.
Fix this by marking such declarations as "isTopLevelDeclInObjCContainer" in the AST
and handling them appropriately.
llvm-svn: 145109
|
| |
|
|
| |
llvm-svn: 145108
|
| |
|
|
| |
llvm-svn: 145107
|
| |
|
|
|
|
| |
Fixes PR11426. Not sure if a test case with a "wrong" malloc would be useful.
llvm-svn: 145106
|
| |
|
|
|
|
|
|
| |
and positive: positive, because it could be directly computed to be positive;
negative, because the nsw flags means it is either negative or undefined (the
multiplication always overflowed).
llvm-svn: 145104
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Before:
movabsq $4294967296, %rax ## encoding: [0x48,0xb8,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00]
testq %rax, %rdi ## encoding: [0x48,0x85,0xf8]
jne LBB0_2 ## encoding: [0x75,A]
After:
btq $32, %rdi ## encoding: [0x48,0x0f,0xba,0xe7,0x20]
jb LBB0_2 ## encoding: [0x72,A]
btq is usually slower than testq because it doesn't fuse with the jump, but here we're better off
saving one register and a giant movabsq.
llvm-svn: 145103
|
| |
|
|
|
|
|
|
| |
aapcs-linux.
Original behaviour of defining wchar_t as signed int has been kept for apcs-gnu as I don't have any spec for this to validate against.
llvm-svn: 145102
|
| |
|
|
|
|
| |
Win32 CodeGen does not support EH yet.
llvm-svn: 145101
|
| |
|
|
|
|
|
|
|
|
|
| |
further. This invariant just wasn't going to work in the face of
unanalyzable branches; we need to be resillient to the phenomenon of
chains poking into a loop and poking out of a loop. In fact, we already
were, we just needed to not assert on it.
This was found during a bootstrap with block placement turned on.
llvm-svn: 145100
|
| |
|
|
|
|
|
|
| |
VSHUFPS/VSHUFPD instructions while lowering VECTOR_SHUFFLE node. I check a commuted VSHUFP mask.
The patch was reviewed by Bruno.
llvm-svn: 145099
|
| |
|
|
|
|
|
|
|
| |
successors, they just are all landing pad successors. We handle this the
same way as no successors. Comments attached for the next person to wade
through here and another lovely test case courtesy of Benjamin Kramer's
bugpoint reduction.
llvm-svn: 145098
|
| |
|
|
|
|
| |
Patch by Bill Wendling.
llvm-svn: 145097
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
This was a bug in keeping track of the available domains when merging
domain values.
The wrong domain mask caused ExecutionDepsFix to try to move VANDPSYrr
to the integer domain which is only available in AVX2.
Also add an assertion to catch future attempts at emitting AVX2
instructions.
llvm-svn: 145096
|
| |
|
|
|
|
|
| |
directory.
Patch by Markus Trippelsdorf.
llvm-svn: 145095
|
| |
|
|
|
|
|
|
|
|
|
| |
reversed in the function's original ordering, and we happened to
encounter it while handling an outer unnatural CFG structure.
Thanks to the test case reduced from GCC's source by Benjamin Kramer.
This may also fix a crasher in gzip that Duncan reduced for me, but
I haven't yet gotten to testing that one.
llvm-svn: 145094
|
| |
|
|
| |
llvm-svn: 145093
|
| |
|
|
| |
llvm-svn: 145092
|
| |
|
|
|
|
| |
appear in non-constant initializers in C++.
llvm-svn: 145087
|
| |
|
|
|
|
|
| |
to 30% of memory. The size doubling was killing us and we ended up with up to
just under 50% of empty capacity. Cleaning this up saves us a ton of memory.
llvm-svn: 145086
|
| |
|
|
|
|
|
| |
having the enumeration take up 32 bits for the type and by putting it into the
bitfields that were already being used.
llvm-svn: 145084
|
| |
|
|
|
|
| |
The assert wasn't adding much value but slowed down Release+Asserts builds.
llvm-svn: 145082
|
| |
|
|
| |
llvm-svn: 145079
|
| |
|
|
| |
llvm-svn: 145078
|
| |
|
|
|
|
|
| |
This fixes a crasher in tools like Include-What-You-Use which examine such
arguments. Patch from Dean Sturtevant at Google!
llvm-svn: 145077
|
| |
|
|
|
|
| |
Contributed by: Marcello Maggioni <hayarms@gmail.com>
llvm-svn: 145076
|
| |
|
|
| |
llvm-svn: 145075
|
| |
|
|
|
|
|
| |
This fixes (or hides) the problem of symbols not being available in the
autoconf build.
llvm-svn: 145074
|
| |
|
|
| |
llvm-svn: 145073
|
| |
|
|
| |
llvm-svn: 145072
|
| |
|
|
|
|
|
| |
This replaces the old option -polly-use-pocc. Also call the passes uniformly
-polly-opt-pocc and -polly-opt-isl.
llvm-svn: 145071
|
| |
|
|
|
|
| |
We can reuse the information and avoid looping over all the bytes again.
llvm-svn: 145070
|
| |
|
|
|
|
| |
making sure we perfectly size our vector of symbols on the symbol table.
llvm-svn: 145069
|
| |
|
|
|
|
|
|
|
| |
Fixed an issue with the options for memory read where --count couldn't be used
with the --binary option when writing data to a file.
Also removed the GDB format option from the --binary version of memory read.
llvm-svn: 145067
|
| |
|
|
|
|
| |
new register-allocation pattern
llvm-svn: 145065
|
| |
|
|
|
|
| |
add AVX flavors of many instructions and fix the destination operand for some of the existing AVX entries.
llvm-svn: 145063
|