Duncan P. N. Exon Smith [Mon, 6 Apr 2015 21:16:11 +0000 (21:16 +0000)]
DebugInfo: Loosen DILexicalBlock constructor
This class wraps `MDLexicalBlockBase`, so allow construction from it!
Currently doesn't cause any problems because of the explicit `MNode*`
constructor, but I'll be removing that soon enough.
llvm-svn: 234222
James Dennett [Mon, 6 Apr 2015 21:09:24 +0000 (21:09 +0000)]
Fix a call to std::unique to actually discard the trailing (junk) elements.
Found by inspection. (No other instances of this problem were found.)
llvm-svn: 234221
Ismail Pazarbasi [Mon, 6 Apr 2015 21:09:08 +0000 (21:09 +0000)]
Move `checkInterfaceFunction` to ModuleUtils
Summary:
Instead of making a local copy of `checkInterfaceFunction` for each
sanitizer, move the function in a common place.
Reviewers: kcc, samsonov
Subscribers: llvm-commits
Differential Revision: http://reviews.llvm.org/D8775
llvm-svn: 234220
David Blaikie [Mon, 6 Apr 2015 20:59:48 +0000 (20:59 +0000)]
[opaque pointer type] Avoid using PointerType::getElementType when parsing IR
A few calls are left in for error checking - but I'm commenting those
out & trying to build some IR tests (aiming for Argument Promotion to
start with). When I get any of these tests passing I may add flag to
disable the checking so I can add tests that pass with the assertion in
place.
llvm-svn: 234206
Simon Atanasyan [Mon, 6 Apr 2015 20:43:35 +0000 (20:43 +0000)]
Replace the `createImplicitFiles` method return type with `void`
All instances of the `createImplicitFiles` always return `true` and this
return value is used nowhere.
llvm-svn: 234205
Rui Ueyama [Mon, 6 Apr 2015 20:25:18 +0000 (20:25 +0000)]
Remove return after report_fatal_error which has noreturn attribute.
llvm-svn: 234204
Rui Ueyama [Mon, 6 Apr 2015 20:10:09 +0000 (20:10 +0000)]
Fix weird line-wrapping.
llvm-svn: 234203
Benjamin Kramer [Mon, 6 Apr 2015 20:01:49 +0000 (20:01 +0000)]
MSan told me that we actually dump the entire scratch buffer into PCH files, initialize it.
Writing 4k of zeros is preferrable to 4k of random memory. Document that. While
there remove the initialization of the first byte of the buffer and start at
index zero. It was writing a literal '0' instead of a null byte at the
beginning anyways, which didn't matter since we never read it.
llvm-svn: 234202
Duncan P. N. Exon Smith [Mon, 6 Apr 2015 19:49:39 +0000 (19:49 +0000)]
DebugInfo: Remove DIDescriptor::Verify()
Remove `DIDescriptor::Verify()` and the `Verify()`s from subclasses.
They had already been gutted, and just did an `isa<>` check.
In a couple of cases I've temporarily dropped the check entirely, but
subsequent commits are going to disallow conversions to the
`DIDescriptor`s directly from `MDNode`, so the checks will come back in
another form soon enough.
llvm-svn: 234201
Duncan P. N. Exon Smith [Mon, 6 Apr 2015 19:48:50 +0000 (19:48 +0000)]
DebugInfo: Add MDTypeRefArray, to replace DITypeArray
This array-like wrapper adapts `MDTuple` to have elements of `MDTypeRef`
(whereas `MDTypeArray` has elements of `MDType`). This is necessary to
migrate code using `DITypeArray`. The only use of this is
`MDSubroutineType`'s `getTypeArray()` accessor.
llvm-svn: 234200
Rui Ueyama [Mon, 6 Apr 2015 19:45:32 +0000 (19:45 +0000)]
Use llvm::cast at where we don't expect a null value.
llvm-svn: 234199
Duncan P. N. Exon Smith [Mon, 6 Apr 2015 19:23:22 +0000 (19:23 +0000)]
DebugInfo: Remove dead DIType::operator DITypeRef(), NFC
llvm-svn: 234198
Duncan P. N. Exon Smith [Mon, 6 Apr 2015 19:03:45 +0000 (19:03 +0000)]
DebugInfo: Use MDTypeRef throughout the hierarchy
Use `MDTypeRef` (etc.) in the new debug info hierarchy rather than raw
`Metadata *` pointers.
I rolled in a change to `DIBuilder` that looks unrelated: take `DIType`
instead of `DITypeRef` as type arguments when creating variables.
However, this was the simplest way to use `MDTypeRef` within the
functions, and didn't require any cleanups from callers in clang (since
they were all passing in `DIType`s anyway, relying on their implicit
conversions to `DITypeRef`).
llvm-svn: 234197
Reid Kleckner [Mon, 6 Apr 2015 18:50:38 +0000 (18:50 +0000)]
[WinEH] Don't sink allocas into child handlers
The uselist isn't enough to infer anything about the lifetime of such
allocas. If we want to re-add this optimization, we will need to
leverage lifetime markers to do it.
Fixes PR23122.
llvm-svn: 234196
Tim Northover [Mon, 6 Apr 2015 18:44:42 +0000 (18:44 +0000)]
ARM: do not relax Thumb1 -> Thumb2 if only Thumb1 is available.
After recognising that a certain narrow instruction might need a relocation to
be represented, we used to unconditionally relax it to a Thumb2 instruction to
permit this. Unfortunately, some CPUs (e.g. v6m) don't even have most Thumb2
instructions, so we end up emitting a completely invalid instruction.
Theoretically, ELF does have relocations for these situations; but they are
fairly unusable with such short ranges and the ABI document even says they're
documented "for completeness". So an error is probably better there too.
rdar://
20391953
llvm-svn: 234195
Enrico Granata [Mon, 6 Apr 2015 18:41:17 +0000 (18:41 +0000)]
If memory read does not find a NULL terminator, still print whatever it gathered instead of just NOP'ing out
However, remark that this is an incomplete chunk of data by still emitting the "no NULL found" warning
rdar://
20330073
llvm-svn: 234194
Simon Pilgrim [Mon, 6 Apr 2015 18:39:00 +0000 (18:39 +0000)]
[X86][SSE] Use (V)PINSRB for direct byte insertion in 16i8 buildvector on SSE4.1 targets
This patch allows SSE4.1 targets to use (V)PINSRB to create 16i8 vectors by inserting i8 scalars directly into a XMM register instead of merging pairs of i8 scalars into a i16 and using the SSE2 PINSRW instruction.
This allows folding of byte loads and reduces scalar register usage as well.
Differential Revision: http://reviews.llvm.org/D8839
llvm-svn: 234193
Duncan P. N. Exon Smith [Mon, 6 Apr 2015 18:25:51 +0000 (18:25 +0000)]
Upgrade testcases after LLVM r234181
Until r234181 we were silently upgrading old `@llvm.dbg` intrinsics.
Fix testcases in polly that were relying on that.
llvm-svn: 234192
Chaoren Lin [Mon, 6 Apr 2015 18:23:48 +0000 (18:23 +0000)]
Ignore IOError from missing child.log.
Summary:
TestMiCliSupport (among other TestMi*) fails on Linux with
```
IOError: [Errno 2] No such file or directory: 'child.log'
```
Reviewers: clayborg, ki.stfu
Reviewed By: ki.stfu
Subscribers: lldb-commits
Differential Revision: http://reviews.llvm.org/D8843
llvm-svn: 234191
Kevin Enderby [Mon, 6 Apr 2015 18:18:23 +0000 (18:18 +0000)]
Fix failure on builder llvm-clang-lld-x86_64-debian-fast as the
test macho-objc-meta-data.test had a line it shouldn't have had.
llvm-svn: 234190
David Blaikie [Mon, 6 Apr 2015 18:06:06 +0000 (18:06 +0000)]
Add some type safety to GlobalObject/GlobalValue - they're always PointerTypes so let's type them that way.
llvm-svn: 234189
Duncan P. N. Exon Smith [Mon, 6 Apr 2015 18:02:43 +0000 (18:02 +0000)]
DebugInfo: Create MDTypeRef, etc., to replace DITypeRef
Create a string-based wrapper in the debug info hierarchy for type
references.
llvm-svn: 234188
Dmitry Vyukov [Mon, 6 Apr 2015 18:00:26 +0000 (18:00 +0000)]
sanitizer: new "strict_string_checks" run-time flag
This patch is related to Issue 346: moar string interceptors: strstr, strcasestr, strcspn, strpbrk
As was suggested in original review http://reviews.llvm.org/D6056 a new "strict_string_checks" run-time flag introduced.
The flag support applied for existing common, asan, msan and tsan interceptors. New asan tests added.
Change by Maria Guseva reviewed in http://reviews.llvm.org/D7123
llvm-svn: 234187
Duncan P. N. Exon Smith [Mon, 6 Apr 2015 17:52:46 +0000 (17:52 +0000)]
DebugInfo: Remove dead DIRef::getName()
llvm-svn: 234186
Kevin Enderby [Mon, 6 Apr 2015 17:47:03 +0000 (17:47 +0000)]
For llvm-objdump added support for printing Objc2 32-bit runtime meta data
with the existing -objc-meta-data and -macho options for Mach-O files.
llvm-svn: 234185
Benjamin Kramer [Mon, 6 Apr 2015 17:45:11 +0000 (17:45 +0000)]
Prefer uninitialized memory for scratch space.
No functional change intended.
llvm-svn: 234184
Duncan P. N. Exon Smith [Mon, 6 Apr 2015 17:45:07 +0000 (17:45 +0000)]
Metadata: Add typed array-like wrapper for MDTuple
Add `MDTupleTypedArrayWrapper`, a wrapper around `MDTuple` that adapts
it to look like an array and cast its operands to the given type. This
is designed to be a replacement for `DITypedArray<>`, which is in the
`DIDescriptor` hierarchy.
llvm-svn: 234183
Duncan P. N. Exon Smith [Mon, 6 Apr 2015 17:21:05 +0000 (17:21 +0000)]
DebugInfo: Remove dead code for accessing fields
Most fields are now accessed via the new debug info hierarchy. I'll
make the rest of this code dead soon.
llvm-svn: 234182
Duncan P. N. Exon Smith [Mon, 6 Apr 2015 17:17:47 +0000 (17:17 +0000)]
AutoUpgrade: Remove obsolete dbg.declare/value upgrade
This upgrade of `@llvm.dbg.declare` and `@llvm.dbg.value` isn't useful,
since it's for an old debug info version. The calls will get stripped
anyway by `UpgradeDebugInfo()`.
llvm-svn: 234181
Jingyue Wu [Mon, 6 Apr 2015 17:15:48 +0000 (17:15 +0000)]
[SLSR] consider &B[S << i] as &B[(1 << i) * S]
Summary: This reduces handling &B[(1 << i) * s] to handling &B[i * S].
Test Plan: slsr-gep.ll
Reviewers: meheff
Subscribers: sanjoy, llvm-commits
Differential Revision: http://reviews.llvm.org/D8837
llvm-svn: 234180
Simon Pilgrim [Mon, 6 Apr 2015 17:15:41 +0000 (17:15 +0000)]
[DAGCombiner] Add support for FCEIL, FFLOOR and FTRUNC vector constant folding
Differential Revision: http://reviews.llvm.org/D8715
llvm-svn: 234179
Greg Clayton [Mon, 6 Apr 2015 17:14:02 +0000 (17:14 +0000)]
We have an issue where if you use a C function right now that has no prototype, it isn't marked as extern "C" and the name to lookup is some C++ mangled form of the name.
This used to be the case for "printf" before a function prototype was added to the builtin expression prefix file. This fix makes sure that if we get a mangled name that we don't find in the current target, that we only fall back to looking up function by basename if the function isn't contained in a namespace or class (no decl context).
llvm-svn: 234178
Duncan P. N. Exon Smith [Mon, 6 Apr 2015 17:04:58 +0000 (17:04 +0000)]
Verifier: Check composite type template params
Add missing checks for `templateParams:` in `MDCompositeType`. Pull the
current check for `MDSubprogram` to reduce duplicated code and fix it up
to print a good message when the immediate operand isn't an `MDTuple`
(as a drive-by, make the same fix to `variables:` in `MDSubprogram`).
llvm-svn: 234177
Fariborz Jahanian [Mon, 6 Apr 2015 16:56:39 +0000 (16:56 +0000)]
[Objective-C patch] Patch to fix a crash in IRGen because
of incorrect AST when a compound literal of Objective-C
property access is used to initialize a vertor of floats.
rdar://
20407999
llvm-svn: 234176
Duncan P. N. Exon Smith [Mon, 6 Apr 2015 16:43:40 +0000 (16:43 +0000)]
DebugInfo: Use MDFile instead of accessing operands directly, NFC
llvm-svn: 234175
Rafael Espindola [Mon, 6 Apr 2015 16:34:41 +0000 (16:34 +0000)]
Use a comma after the unique keyword.
H.J. Lu noted that all .section options are separated by a comma.
This patch changes the syntax of unique to require one.
llvm-svn: 234174
David Blaikie [Mon, 6 Apr 2015 16:33:18 +0000 (16:33 +0000)]
Fix this test so it doesn't try to open a file to write to the source tree
llvm-svn: 234173
Zachary Turner [Mon, 6 Apr 2015 16:23:30 +0000 (16:23 +0000)]
Fix printing of function names during unwind logging.
llvm-svn: 234172
Sanjay Patel [Mon, 6 Apr 2015 16:21:12 +0000 (16:21 +0000)]
fix typos; NFC
llvm-svn: 234171
Aaron Ballman [Mon, 6 Apr 2015 16:10:32 +0000 (16:10 +0000)]
Gating clang-fuzzer on the same conditions required to build the LLVMFuzzer library. Otherwise, we can run into a situation where clang-fuzzer attempts to build, but its dependency was never built.
llvm-svn: 234170
Rafael Espindola [Mon, 6 Apr 2015 16:10:05 +0000 (16:10 +0000)]
Remove unnecessary uses of AliasedSymbol.
As pr19627 points out, every use of AliasedSymbol is likely a bug.
The main use was to avoid the oddity of a variable showing up as undefined. That
was fixed in r233995, which made these calls nops.
llvm-svn: 234169
Aaron Ballman [Mon, 6 Apr 2015 16:09:13 +0000 (16:09 +0000)]
Removing a spurious space; NFC.
llvm-svn: 234168
Simon Atanasyan [Mon, 6 Apr 2015 16:07:19 +0000 (16:07 +0000)]
[Mips] Guard modification of register usage masks by mutex
llvm-svn: 234167
Ed Maste [Mon, 6 Apr 2015 15:50:48 +0000 (15:50 +0000)]
test: Move amd64 -> x86_64 translation to getArchitecture()
Rather than sprinkling this knowledge throughout the test suite, just
translate amd64 to x86_64 globally.
llvm-svn: 234166
Rafael Espindola [Mon, 6 Apr 2015 15:27:57 +0000 (15:27 +0000)]
Be consistent when deciding if a relocation is needed.
Before when deciding if we needed a relocation in A-B, we wore only checking
if A was weak.
This fixes the asymmetry.
The "InSet" argument should probably be renamed to "ForValue", since InSet is
very MachO specific, but doing so in this patch would make it hard to read.
This fixes PR22815.
llvm-svn: 234165
Ed Maste [Mon, 6 Apr 2015 15:23:21 +0000 (15:23 +0000)]
test: Add amd64 architecture alias for x86_64
64-bit x86 is called amd64 on FreeBSD.
llvm-svn: 234164
Simon Atanasyan [Mon, 6 Apr 2015 15:15:01 +0000 (15:15 +0000)]
[LinkerScript] Handle symbols defined in linker scripts in case of shared lib
This patch is a follow-up to the rL232409 and allows define symbols
in a linker script in case of linking shared library.
llvm-svn: 234163
Simon Atanasyan [Mon, 6 Apr 2015 15:09:39 +0000 (15:09 +0000)]
[ELF] Use override keyword instead of virtual
No functional changes.
llvm-svn: 234162
Rafael Espindola [Mon, 6 Apr 2015 15:04:31 +0000 (15:04 +0000)]
Disable all link optimizations in a debug build.
This taking linking clang on my machine with gold from 16.
980257914 to
15.
933037649 seconds.
llvm-svn: 234161
Rafael Espindola [Mon, 6 Apr 2015 14:51:01 +0000 (14:51 +0000)]
Don't pass -O3 to the linker in debug builds.
This takes linking clang in a debug build with gold form 19.
518925697 to
16.
406388685 seconds.
llvm-svn: 234160
Rafael Espindola [Mon, 6 Apr 2015 14:34:43 +0000 (14:34 +0000)]
Don't use -ffunction-sections -fdata-sections on debug builds.
Unfortunately, on ELF there is not used attribute on the .o files,
so there is no easy way to keep the dump function alive.
If we are not gcing, we may as well produce non gcable files and
avoid the cost.
Linking a debug clang now takes 18.
856225992 seconds, before it
took 21.
206897447.
I will try avoiding --gc-sections -O3 on a followup patch.
llvm-svn: 234159
Pawel Bylica [Mon, 6 Apr 2015 13:31:39 +0000 (13:31 +0000)]
Test commit. Improve comments in APInt. NFC.
llvm-svn: 234158
Simon Atanasyan [Mon, 6 Apr 2015 13:26:15 +0000 (13:26 +0000)]
[ELF] Use override keyword instead of virtual
No functional changes.
llvm-svn: 234157
Simon Atanasyan [Mon, 6 Apr 2015 13:26:10 +0000 (13:26 +0000)]
[ELF] Remove redundant forward class declarations
No functional changes.
llvm-svn: 234156
Simon Atanasyan [Mon, 6 Apr 2015 13:26:04 +0000 (13:26 +0000)]
[Mips] Remove redundant non-template MipsRelocationHandler class
llvm-svn: 234155
Simon Atanasyan [Mon, 6 Apr 2015 13:25:58 +0000 (13:25 +0000)]
[Mips] Replace MipsRelocationHandler::readAddend() by a regular function
The readAddend() does not depend on MipsRelocationHandler and should not
be its member function.
llvm-svn: 234154
Simon Atanasyan [Mon, 6 Apr 2015 13:25:52 +0000 (13:25 +0000)]
[Mips] Reformat the code with clang-format
llvm-svn: 234153
Michael Kuperstein [Mon, 6 Apr 2015 13:22:01 +0000 (13:22 +0000)]
HasSideEffects() should return false for calls to pure and const functions.
Differential Revision: http://reviews.llvm.org/D8548
llvm-svn: 234152
Timur Iskhodzhanov [Mon, 6 Apr 2015 12:54:06 +0000 (12:54 +0000)]
Minor follow-up fix to r234150
llvm-svn: 234151
Timur Iskhodzhanov [Mon, 6 Apr 2015 12:49:30 +0000 (12:49 +0000)]
[ASan] Unify handling of loaded modules between POSIX and Windows
Reviewed at http://reviews.llvm.org/D8805
llvm-svn: 234150
Benjamin Kramer [Mon, 6 Apr 2015 12:30:43 +0000 (12:30 +0000)]
Update our list of distros a bit.
- Debian jessie will be released this month, add the next testing version to the list.
- RHEL7 was released last june.
- Ubuntu utopic was released last october, vivid will follow later this month.
llvm-svn: 234149
Sergey Dmitrouk [Mon, 6 Apr 2015 11:54:51 +0000 (11:54 +0000)]
Add hard float versions of FP to LL conversions
This adds hard-float implementation for the following builtins:
* __fixdfdi()
* __fixsfdi()
* __fixunsdfdi()
* __fixunssfdi()
The soft-float implementation does never raise floating point
exceptions, which doesn't allow clients to detect floating point
conversion errors.
I must mention that I had to refer to libgcc's implementation to
write these functions.
Related unit-tests of compiler-rt passed with these changes.
Patch was somewhat out-dated, so was updated locally without any
functional changes.
Differential Revision: http://reviews.llvm.org/D5376
llvm-svn: 234148
Alexander Potapenko [Mon, 6 Apr 2015 10:32:45 +0000 (10:32 +0000)]
[ASan] Do not print thread IDs and stacks for unknown threads.
llvm-svn: 234147
NAKAMURA Takumi [Mon, 6 Apr 2015 08:16:36 +0000 (08:16 +0000)]
clang/test/Profile/profile-does-not-exist.c: Avoid checking a message line in the message catalog.
llvm-svn: 234146
Dmitry Vyukov [Mon, 6 Apr 2015 07:57:32 +0000 (07:57 +0000)]
tsan: fix munmap interceptor
MetaMap::ResetRange/FreeRange rounds the range up to at least kMetaShadowSize.
This is requried for e.g. free(malloc(0)). However, munmap returns EINVAL
and do not unmap any memory when length arguments is equal to 0.
So don't free meta shadow in this case as well.
llvm-svn: 234145
Denis Protivensky [Mon, 6 Apr 2015 07:44:59 +0000 (07:44 +0000)]
[AArch64] Fix error in AARCH64_ADR_GOT_PAGE handler
The error was introduced during mechanical replacement
of raw memory reads/writes to use readxxle/writexxle functions
in r230725.
Noted and fixed by Suprateeka R Hegde <hegdesmailbox@gmail.com>
llvm-svn: 234144
Rafael Espindola [Mon, 6 Apr 2015 04:36:45 +0000 (04:36 +0000)]
This reverts commit r234104, bringing back 233393 now that ARM is fixed.
Original message:
Don't use unique section names by default if using the integrated as.
This saves some IO and ccache space by not creating long section names. It
should work with every ELF linker.
llvm-svn: 234143
Rafael Espindola [Mon, 6 Apr 2015 04:25:18 +0000 (04:25 +0000)]
Store the sh_link of ARM_EXIDX directly in MCSectionELF.
This avoids some pretty horrible and broken name based section handling.
llvm-svn: 234142
Nico Weber [Mon, 6 Apr 2015 04:16:48 +0000 (04:16 +0000)]
Don't crash when passing a non-existent file to -fprofile-instr-use=.
Fixes a regression from r229434.
llvm-svn: 234141
Rafael Espindola [Mon, 6 Apr 2015 03:16:51 +0000 (03:16 +0000)]
Simplify this function a bit. NFC.
The case values are not a tidy enum we can fully cover. They even ovelap
over the various extension.
Just use a default:
llvm-svn: 234140
Rafael Espindola [Mon, 6 Apr 2015 03:09:30 +0000 (03:09 +0000)]
Simplify mapping from relocation sections to relocated sections.
Just store the section in MCSectionELF. This avoids multiple hash lookups.
This will also be used by ARM_EXIDX.
llvm-svn: 234139
Lang Hames [Mon, 6 Apr 2015 03:01:29 +0000 (03:01 +0000)]
[Orc] Tidy up the assembly for the x86-64 resolver block.
llvm-svn: 234138
Peter Collingbourne [Sun, 5 Apr 2015 23:32:13 +0000 (23:32 +0000)]
Add documentation for llgoi, update README
llvm-svn: 234137
Peter Collingbourne [Sun, 5 Apr 2015 23:32:10 +0000 (23:32 +0000)]
Roll gofrontend to
15a24202fa42.
Takes us to Go 1.4.2 plus a number of bug fixes.
Differential Revision: http://reviews.llvm.org/D8830
llvm-svn: 234136
Peter Collingbourne [Sun, 5 Apr 2015 23:31:49 +0000 (23:31 +0000)]
Roll gofrontend to
07baa07598ea; roll libffi to r219477.
Incorporates https://codereview.appspot.com/
198770044, which causes us to start
using the static chain register for closures instead of __go_{get,set}_closure.
Differential Revision: http://reviews.llvm.org/D8829
llvm-svn: 234135
Peter Collingbourne [Sun, 5 Apr 2015 23:30:42 +0000 (23:30 +0000)]
Roll gofrontend to
a6e10414311a
This takes us to Go 1.4. Also includes a couple of changes to the test
suite, both in the runtime package:
- Disable TestSetPanicOnFault. We cannot support this scenario at all,
due to LLVM's lack of non-call exceptions.
- Tweak TestFinalizerType. This test only passes with two GC runs.
Differential Revision: http://reviews.llvm.org/D8828
llvm-svn: 234134
Peter Collingbourne [Sun, 5 Apr 2015 23:28:18 +0000 (23:28 +0000)]
Roll gotools to
d4e70101.
Most importantly, this gives us https://go-review.googlesource.com/7533 which
fixes a bug in go/ssa that caused test failures in the Go 1.4 standard library.
Also remove the go1.4 tag workaround. We no longer need it now that we
ship llgo-go.
Differential Revision: http://reviews.llvm.org/D8827
llvm-svn: 234133
David Blaikie [Sun, 5 Apr 2015 22:53:21 +0000 (22:53 +0000)]
[opaque pointer type] Remove some backwards compatible GEP APIs
Just doing the two-step so I don't get so much build-bot spam... (add
new API, migrate callers, remove old API)
llvm-svn: 234132
David Blaikie [Sun, 5 Apr 2015 22:51:12 +0000 (22:51 +0000)]
[opaque pointer type] More GEP API migrations
llvm-svn: 234131
Davide Italiano [Sun, 5 Apr 2015 22:47:54 +0000 (22:47 +0000)]
Strip .strtab and .symtab when --strip-all is used.
This matches other linkers behaviour. Moreover, there's really
no need to keep them around.
Reported by: Rafael Avila de Espindola
PR: 22890
llvm-svn: 234130
David Blaikie [Sun, 5 Apr 2015 22:47:07 +0000 (22:47 +0000)]
clang-format my last commit
(sorry, keep forgetting that)
llvm-svn: 234129
David Blaikie [Sun, 5 Apr 2015 22:45:47 +0000 (22:45 +0000)]
[opaque pointer type] More GEP API migrations
Looks like the VTable code in particular will need some work to pass
around the pointee type explicitly.
llvm-svn: 234128
David Blaikie [Sun, 5 Apr 2015 22:44:57 +0000 (22:44 +0000)]
clang-format my last commit
llvm-svn: 234127
David Blaikie [Sun, 5 Apr 2015 22:41:44 +0000 (22:41 +0000)]
[opaque pointer type] The last of the GEP IRBuilder API migrations
There's still lots of callers passing nullptr, of course - some because
they'll never be migrated (InstCombines for bitcasts - well they don't
make any sense when the pointer type is opaque anyway, for example) and
others that will need more engineering to pass Types around.
llvm-svn: 234126
Tobias Grosser [Sun, 5 Apr 2015 21:52:21 +0000 (21:52 +0000)]
Make -polly-no-tiling work again
llvm-svn: 234125
Tobias Grosser [Sun, 5 Apr 2015 19:52:38 +0000 (19:52 +0000)]
Adjust documentation to old -enable-polly-openmp -> -polly-parallel rename
Reported-by: Tomofumi Yuki <tomofumi.yuki@gmail.com>
llvm-svn: 234124
Benjamin Kramer [Sun, 5 Apr 2015 18:55:02 +0000 (18:55 +0000)]
Replace copy loop with std::copy.
No functional change intended.
llvm-svn: 234123
Tobias Grosser [Sun, 5 Apr 2015 17:36:42 +0000 (17:36 +0000)]
Sign-extend in case of non-matching bitwidth
This change ensures that we sign-extend integer types in case non-matching
operands are encountered when generating a multi-dimensional access offset.
This fixes http://llvm.org/PR23124
Reported-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
llvm-svn: 234122
Benjamin Kramer [Sun, 5 Apr 2015 17:02:25 +0000 (17:02 +0000)]
Mark BumpPtrAllocator::Allocate as returning a noalias pointer.
The GCC attribute is curiously named 'malloc', but I think it's better
to use LLVM terminology for the wrapper macro.
llvm-svn: 234121
Benjamin Kramer [Sun, 5 Apr 2015 15:53:20 +0000 (15:53 +0000)]
[elf] Fix a silly memory leak. std::string has a non-trivial dtor.
llvm-svn: 234120
Tobias Grosser [Sun, 5 Apr 2015 14:57:50 +0000 (14:57 +0000)]
Do not assume all multi-parameter products are affine
As soon as one operand of the product is invalid, the entire product is invalid.
This happens for example if one of the operands is not loop-invariant.
This fixes http://llvm.org/PR23125
Reported-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com
llvm-svn: 234119
Simon Pilgrim [Sun, 5 Apr 2015 14:30:37 +0000 (14:30 +0000)]
[DAGCombiner] Merge FMUL Scalar and Vector constant canonicalization to RHS. NFCI.
llvm-svn: 234118
Tobias Grosser [Sun, 5 Apr 2015 13:11:54 +0000 (13:11 +0000)]
Make run-time alias check generation deterministic
llvm-svn: 234117
Simon Atanasyan [Sun, 5 Apr 2015 09:01:53 +0000 (09:01 +0000)]
[Mips] Rename MipsLinkingContext class method
getMergeReginfoMask => getMergedReginfoMask
llvm-svn: 234116
Simon Atanasyan [Sun, 5 Apr 2015 09:01:46 +0000 (09:01 +0000)]
[Mips] Support writing .MIPS.options section into the linked file
In case of MIPS N64 ABI linker should merge registers usage masks stored
in the input .MIPS.options sections and save result into the output
.MIPS.options section.
llvm-svn: 234115
Simon Atanasyan [Sun, 5 Apr 2015 09:01:35 +0000 (09:01 +0000)]
[Mips] Add checking of .reginfo section options to the test case
llvm-svn: 234114
Tobias Grosser [Sun, 5 Apr 2015 06:53:21 +0000 (06:53 +0000)]
Do not use the POLLY vector code generator if only strip-mining is requested
This fixes http://llvm.org/PR23127
Reported-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
llvm-svn: 234113
Tobias Grosser [Sun, 5 Apr 2015 06:53:11 +0000 (06:53 +0000)]
[tests] Use -polly-vectorizer=polly directly
instead of defining a lit variable %vector-opt.
llvm-svn: 234112
David Majnemer [Sun, 5 Apr 2015 05:42:02 +0000 (05:42 +0000)]
Switch test from wchar_t to char32_t
Windows has a 16-bit wchar_t, most Unix platforms have a 32-bit wchar_t.
Use a char32_t to keep the test's output stable.
llvm-svn: 234111
David Majnemer [Sun, 5 Apr 2015 05:32:54 +0000 (05:32 +0000)]
[AST] String literal operator templates have two template args, not one
StmtPrinter assumed that the first template arg was the pack and
attempted to iterate it. However, the GNU extension (which is really
just N3599), has two template arguments. In this case, the second
argument is the pack containing the string contents.
Handle this by desugaring the call to the explicit operator.
For example:
"qux" _zombocom will be shown as
operator "" _zombocom<char, 'q', 'u', 'x'>() in diagnostics and AST
dumps.
N.B. It is actually impossible to render the arguments back to the
source form without storing more information in the AST. For example,
we cannot tell if the user wrote u8"qux" or "qux". We also lose
fidelity when it comes to non-char types for this exact reason (e.g. it
is hard to render a list of wchar_t back to something that can be
printed to the screen even if you don't have to consider surrogate
pairs).
This fixes PR23120.
llvm-svn: 234110