Andrew Trick [Wed, 24 Apr 2013 23:19:56 +0000 (23:19 +0000)]
Fix for r180193 - MI Sched: eliminate local vreg.
Fixes PR15838. Need to check for blocks with nothing but dbg.value.
I'm not sure how to force this situation with a unit test. I tried to
reduce the test case in PR15838 (1k lines of metadata) but gave up.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180227
91177308-0d34-0410-b5e6-
96231b3b80d8
Chad Rosier [Wed, 24 Apr 2013 22:53:10 +0000 (22:53 +0000)]
[inline asm] Fix a crasher for an invalid value type/register class.
rdar://
13731657
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180226
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew Kaylor [Wed, 24 Apr 2013 22:39:12 +0000 (22:39 +0000)]
Making invalidateInstructionCache automatic in SectionMemoryManager
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180225
91177308-0d34-0410-b5e6-
96231b3b80d8
Michael Gottesman [Wed, 24 Apr 2013 22:18:18 +0000 (22:18 +0000)]
[objc-arc] Added ImpreciseAutoreleaseSet to track autorelease calls that were once autoreleaseRV instructions.
Due to the semantics of ARC, we must be extremely conservative with autorelease
calls inserted by the frontend since ARC gaurantees that said object will be in
the autorelease pool after that point, an optimization invariant that the
optimizer must respect.
On the other hand, we are allowed significantly more flexibility with
autoreleaseRV instructions.
Often times though this flexibility is disrupted by early transformations which
transform objc_autoreleaseRV => objc_autorelease if said instruction is no
longer being used as part of an RV pair (generally due to inlining). Since we
can not tell the difference in between an autorelease put into place by the
frontend and one created through said ``strength reduction'' we can not perform
these optimizations.
The addition of this set gets around said issues by allowing us to differentiate
in between said two cases.
rdar://problem/
13697741.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180222
91177308-0d34-0410-b5e6-
96231b3b80d8
Michael Gottesman [Wed, 24 Apr 2013 22:18:15 +0000 (22:18 +0000)]
Fixed comment typo.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180221
91177308-0d34-0410-b5e6-
96231b3b80d8
Jack Carter [Wed, 24 Apr 2013 21:52:42 +0000 (21:52 +0000)]
Mips assembler: Add 64 bit testing for JAL
Contributer: Vladimir Medic
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180220
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Wed, 24 Apr 2013 19:47:55 +0000 (19:47 +0000)]
Use pointers to iterate over symbols.
While here, don't report a dummy symbol for relocations that don't have symbols.
We used to says such relocations were for the first defined symbol, but now we
return end_symbols(). The llvm-readobj output change agrees with otool.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180214
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Wed, 24 Apr 2013 17:54:35 +0000 (17:54 +0000)]
Don't produce an empty llvm.compiler.used in LTO.
LTO was always creating an empty llvm.compiler.used. With this patch we
now first check if there is anything to be added first.
Unfortunately, there is no good way to test libLTO in isolation as it needs gold
or ld64, but there are bots doing LTO builds that found this problem.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180202
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Kleckner [Wed, 24 Apr 2013 17:50:30 +0000 (17:50 +0000)]
Don't forward declare environ on Windows
That seems to interact poorly with the environ and _environ macros
defined in MSVC's <stdlib.h>.
Also remove the incorrect comment about _NSGetEnviron().
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180200
91177308-0d34-0410-b5e6-
96231b3b80d8
Arnold Schwaighofer [Wed, 24 Apr 2013 16:16:03 +0000 (16:16 +0000)]
LoopVectorizer: Change variable name Stride to ConsecutiveStride
This makes it easier to read the code.
No functionality change.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180197
91177308-0d34-0410-b5e6-
96231b3b80d8
Arnold Schwaighofer [Wed, 24 Apr 2013 16:16:01 +0000 (16:16 +0000)]
LoopVectorize: Scalarize padded types
This patch disables memory-instruction vectorization for types that need padding
bytes, e.g., x86_fp80 has 10 bytes store size with 6 bytes padding in darwin on
x86_64. Because the load/store vectorization is performed by the bit casting to
a packed vector, which has incompatible memory layout due to the lack of padding
bytes, the present vectorizer produces inconsistent result for memory
instructions of those types.
This patch checks an equality of the AllocSize of a scalar type and allocated
size for each vector element, to ensure that there is no padding bytes and the
array can be read/written using vector operations.
Patch by Daisuke Takahashi!
Fixes PR15758.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180196
91177308-0d34-0410-b5e6-
96231b3b80d8
Arnold Schwaighofer [Wed, 24 Apr 2013 16:15:58 +0000 (16:15 +0000)]
LoopVectorizer: Bail out if we don't have datalayout we need it
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180195
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Wed, 24 Apr 2013 16:10:49 +0000 (16:10 +0000)]
Revert r180189.
This should bring the ppc bots back. I will try to write a test that would
have found the problem on a little endian system too.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180194
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew Trick [Wed, 24 Apr 2013 15:54:43 +0000 (15:54 +0000)]
MI Sched: eliminate local vreg copies.
For now, we just reschedule instructions that use the copied vregs and
let regalloc elliminate it. I would really like to eliminate the
copies on-the-fly during scheduling, but we need a complete
implementation of repairIntervalsInRange() first.
The general strategy is for the register coalescer to eliminate as
many global copies as possible and shrink live ranges to be
extended-basic-block local. The coalescer should not have to worry
about resolving local copies (e.g. it shouldn't attemp to reorder
instructions). The scheduler is a much better place to deal with local
interference. The coalescer side of this equation needs work.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180193
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew Trick [Wed, 24 Apr 2013 15:54:39 +0000 (15:54 +0000)]
Register Coalescing: add a flag to disable rescheduling.
When MachineScheduler is enabled, this functionality can be
removed. Until then, provide a way to disable it for test cases and
designing MachineScheduler heuristics.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180192
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew Trick [Wed, 24 Apr 2013 15:54:36 +0000 (15:54 +0000)]
MI Sched: regpressure tracing.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180191
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Wed, 24 Apr 2013 15:14:22 +0000 (15:14 +0000)]
Formatting fixes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180190
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Wed, 24 Apr 2013 15:02:03 +0000 (15:02 +0000)]
Use a pointer as the relocation iterator.
Since the relocation iterator walks only the relocations in one section, we
can just use a pointer and avoid fetching information about the section at
every reference.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180189
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Wed, 24 Apr 2013 14:49:26 +0000 (14:49 +0000)]
Add include guards.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180188
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Wed, 24 Apr 2013 12:56:18 +0000 (12:56 +0000)]
Formatting.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180186
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Wed, 24 Apr 2013 03:11:14 +0000 (03:11 +0000)]
Align the __LD,__compact_unwind section.
I know what would be cool! We should align the compact unwind section because
aligned data access is faster.
<rdar://problem/
13723271>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180171
91177308-0d34-0410-b5e6-
96231b3b80d8
Jia Liu [Wed, 24 Apr 2013 02:17:19 +0000 (02:17 +0000)]
remove cbe backend from sample configure
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180169
91177308-0d34-0410-b5e6-
96231b3b80d8
Adrian Prantl [Wed, 24 Apr 2013 01:44:15 +0000 (01:44 +0000)]
Cleanup testcase and ensure we actually exercise the inliner.
rdar://problem/
12415623
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180168
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew Trick [Tue, 23 Apr 2013 23:45:16 +0000 (23:45 +0000)]
Machine model: Generate table entries for super-resources.
Super-resources and resource groups are two ways of expressing
overlapping sets of processor resources. Now we generate table entries
the same way for both so the scheduler never needs to explicitly check
for super-resources.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180162
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew Trick [Tue, 23 Apr 2013 23:45:14 +0000 (23:45 +0000)]
Machine model: verify well-formed processor resource groups.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180161
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew Trick [Tue, 23 Apr 2013 23:45:11 +0000 (23:45 +0000)]
Machine model: rewrite a tablegen loop to avoid comparing record pointers.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180160
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew Trick [Tue, 23 Apr 2013 23:45:08 +0000 (23:45 +0000)]
Comment a strange field in ScheduleDAG.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180159
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Tue, 23 Apr 2013 22:53:53 +0000 (22:53 +0000)]
Fix dependency layering issues caused by r180112.
Patch by Tom Stellard. (Committed while he's afk per request)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180157
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew Kaylor [Tue, 23 Apr 2013 21:46:56 +0000 (21:46 +0000)]
Fixing cmake build for MCJIT unit tests
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180150
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew Kaylor [Tue, 23 Apr 2013 21:32:32 +0000 (21:32 +0000)]
Fixing typo in comment.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180147
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew Kaylor [Tue, 23 Apr 2013 21:26:38 +0000 (21:26 +0000)]
Adding object caching support to MCJIT
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180146
91177308-0d34-0410-b5e6-
96231b3b80d8
Jyotsna Verma [Tue, 23 Apr 2013 21:17:40 +0000 (21:17 +0000)]
Hexagon: Use multiclass for combine and STri[bhwd]_shl_V4 instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180145
91177308-0d34-0410-b5e6-
96231b3b80d8
Jyotsna Verma [Tue, 23 Apr 2013 21:05:55 +0000 (21:05 +0000)]
Hexagon: Define relations for GP-relative instructions.
No functionality change.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180144
91177308-0d34-0410-b5e6-
96231b3b80d8
Adrian Prantl [Tue, 23 Apr 2013 19:56:03 +0000 (19:56 +0000)]
Make sure the instruction right after an inlined function has a
debug location. This solves a problem where range of an inlined
subroutine is emitted wrongly.
Patch by Manman Ren.
Fixes rdar://problem/
12415623
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180140
91177308-0d34-0410-b5e6-
96231b3b80d8
Stephen Lin [Tue, 23 Apr 2013 19:42:25 +0000 (19:42 +0000)]
Add more tests for r179925 to verify correct handling of signext/zeroext; strengthen condition check to require actual MVT::i32 virtual register types, just in case (no actual functionality change)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180138
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Tue, 23 Apr 2013 19:39:34 +0000 (19:39 +0000)]
Fix typo.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180137
91177308-0d34-0410-b5e6-
96231b3b80d8
Stephen Lin [Tue, 23 Apr 2013 19:30:12 +0000 (19:30 +0000)]
Lowercase "is" boolean variable prefix for consistency within function, no functionality change.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180136
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Tue, 23 Apr 2013 19:26:43 +0000 (19:26 +0000)]
Simplify yaml2obj a bit.
The COFFParser now contains only a COFFYAML::Object and the string table
(which is recomputed, not serialized).
The structs in COFFParser now all begin with a Header field with what is
actually on the COFF object. The other fields are things that are semantically
part of the struct (relocations in a section for exmaple), but are not actually
represented that way in the object file.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180134
91177308-0d34-0410-b5e6-
96231b3b80d8
Jyotsna Verma [Tue, 23 Apr 2013 19:15:55 +0000 (19:15 +0000)]
Hexagon: Remove assembler mapped instruction definitions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180133
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Schmidt [Tue, 23 Apr 2013 18:49:44 +0000 (18:49 +0000)]
Change commentary for PowerPC Boolean vector contents.
No functional change intended.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180131
91177308-0d34-0410-b5e6-
96231b3b80d8
Akira Hatanaka [Tue, 23 Apr 2013 18:09:42 +0000 (18:09 +0000)]
[mips] Compare splat value with element size instead of calling isUIntN.
No intended changes in functionality.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180130
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Tue, 23 Apr 2013 18:09:28 +0000 (18:09 +0000)]
DAGCombine should not aggressively fold SEXT(VSETCC(...)) into a wider VSETCC without first checking the target's vector boolean contents.
This exposed an issue with PowerPC AltiVec where it appears it was setting the wrong vector boolean contents. The included change
fixes the PowerPC tests, and was OK'd by Hal.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180129
91177308-0d34-0410-b5e6-
96231b3b80d8
Aaron Ballman [Tue, 23 Apr 2013 17:38:44 +0000 (17:38 +0000)]
Testing for _XCR_XFEATURE_ENABLED_MASK instead of a specific MSVC version because some MSVC 2010 SP1 installations do not have the _xgetbv intrinsic. Patch thanks to Serge Pavlov!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180125
91177308-0d34-0410-b5e6-
96231b3b80d8
Vincent Lejeune [Tue, 23 Apr 2013 17:34:12 +0000 (17:34 +0000)]
R600: Use .AMDGPU.config section to emit stacksize
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180124
91177308-0d34-0410-b5e6-
96231b3b80d8
Vincent Lejeune [Tue, 23 Apr 2013 17:34:00 +0000 (17:34 +0000)]
R600: Add CF_END
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180123
91177308-0d34-0410-b5e6-
96231b3b80d8
Nadav Rotem [Tue, 23 Apr 2013 17:12:42 +0000 (17:12 +0000)]
LoopVectorizer: Fix 15830. When scalarizing and unrolling stores make sure that the order in which the elements are scalarized is the same as the original order.
This fixes a miscompilation in FreeBSD's regex library.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180121
91177308-0d34-0410-b5e6-
96231b3b80d8
Jyotsna Verma [Tue, 23 Apr 2013 17:11:46 +0000 (17:11 +0000)]
Hexagon: Remove duplicate instructions to handle global/immediate values
for absolute/absolute-set addressing modes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180120
91177308-0d34-0410-b5e6-
96231b3b80d8
Pekka Jaaskelainen [Tue, 23 Apr 2013 16:44:43 +0000 (16:44 +0000)]
Call the potentially costly isAnnotatedParallel() only once.
Made the uniform write test's checks a bit stricter.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180119
91177308-0d34-0410-b5e6-
96231b3b80d8
Stephen Lin [Tue, 23 Apr 2013 16:31:56 +0000 (16:31 +0000)]
Add some constraints to use of 'returned':
1) Disallow 'returned' on parameter that is also 'sret' (no sensible semantics, as far as I can tell).
2) Conservatively disallow tail calls through 'returned' parameters that also are 'zext' or 'sext' (for consistency with treatment of other zero-extending and sign-extending operations in tail call position detection...can be revised later to handle situations that can be determined to be safe).
This is a new attribute that is not yet used, so there is no impact.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180118
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Tue, 23 Apr 2013 15:53:02 +0000 (15:53 +0000)]
Write relocations in yaml2obj.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180115
91177308-0d34-0410-b5e6-
96231b3b80d8
Tom Stellard [Tue, 23 Apr 2013 15:13:36 +0000 (15:13 +0000)]
Wrap.h: Define wrap / unwrap function for ExecutionEngine
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180112
91177308-0d34-0410-b5e6-
96231b3b80d8
Carlo Kok [Tue, 23 Apr 2013 13:45:37 +0000 (13:45 +0000)]
c vs c++ mistake in header file typedef for AtomicRMW fix in rev 180100.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180104
91177308-0d34-0410-b5e6-
96231b3b80d8
Alexey Samsonov [Tue, 23 Apr 2013 13:35:32 +0000 (13:35 +0000)]
Fixup for r180094: properly use MSan interface functions
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180103
91177308-0d34-0410-b5e6-
96231b3b80d8
Carlo Kok [Tue, 23 Apr 2013 13:21:19 +0000 (13:21 +0000)]
Expose IRBuilder::CreateAtomicRMW as LLVMBuildAtomicRMW in llvm-c.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180100
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Kleckner [Tue, 23 Apr 2013 13:15:51 +0000 (13:15 +0000)]
Un-revert the environ copy in ProgramTest after fixing it on OS X
This was r180041 and r180046, which was reverted in r180066.
Re-committing this should fix the dragonegg bootstrap, which I presume
needs LD_LIBRARY_PATH to be propagated to the child.
Tested on Linux, Windows, and Mac OS 10.6.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180099
91177308-0d34-0410-b5e6-
96231b3b80d8
Alexey Samsonov [Tue, 23 Apr 2013 12:17:46 +0000 (12:17 +0000)]
Tell MSan that memory initialized by libz is valid
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180094
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Tue, 23 Apr 2013 12:03:27 +0000 (12:03 +0000)]
Move test from grep to FileCheck.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180092
91177308-0d34-0410-b5e6-
96231b3b80d8
Alexey Samsonov [Tue, 23 Apr 2013 10:17:34 +0000 (10:17 +0000)]
Use zlib to uncompress debug sections in DWARF parser.
This makes llvm-dwarfdump and llvm-symbolizer understand
debug info sections compressed by ld.gold linker.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180088
91177308-0d34-0410-b5e6-
96231b3b80d8
Hans Wennborg [Tue, 23 Apr 2013 10:12:16 +0000 (10:12 +0000)]
Add llvm_unreachable after fully covered switch to pacify GCC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180087
91177308-0d34-0410-b5e6-
96231b3b80d8
Alexey Samsonov [Tue, 23 Apr 2013 08:57:30 +0000 (08:57 +0000)]
Add more guards around zlib-dependent code
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180084
91177308-0d34-0410-b5e6-
96231b3b80d8
Alexey Samsonov [Tue, 23 Apr 2013 08:28:39 +0000 (08:28 +0000)]
Add basic zlib support to LLVM. This would allow to use compression/uncompression in selected LLVM tools.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180083
91177308-0d34-0410-b5e6-
96231b3b80d8
Pekka Jaaskelainen [Tue, 23 Apr 2013 08:08:51 +0000 (08:08 +0000)]
Refuse to (even try to) vectorize loops which have uniform writes,
even if erroneously annotated with the parallel loop metadata.
Fixes Bug 15794:
"Loop Vectorizer: Crashes with the use of llvm.loop.parallel metadata"
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180081
91177308-0d34-0410-b5e6-
96231b3b80d8
Tim Northover [Tue, 23 Apr 2013 06:55:15 +0000 (06:55 +0000)]
AArch64: remove unnecessary check that RS is valid
AArch64 always demands a register-scavenger, so the pointer should never be
NULL. However, in the spirit of paranoia, we'll assert it before use just in
case.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180080
91177308-0d34-0410-b5e6-
96231b3b80d8
Manman Ren [Mon, 22 Apr 2013 23:00:44 +0000 (23:00 +0000)]
Struct-path aware TBAA: update getMostGenericTBAA
The tag is of type TBAANode when flag EnableStructPathTBAA is off.
Move implementation of MDNode::getMostGenericTBAA to TypeBasedAliasAnalysis.cpp
since it depends on how to interprete the MDNodes for scalar TBAA and
struct-path aware TBAA.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180068
91177308-0d34-0410-b5e6-
96231b3b80d8
Michael Gottesman [Mon, 22 Apr 2013 22:51:55 +0000 (22:51 +0000)]
Revert "Add a missing reference on a std::vector<> out param"
Revert "[Support] Propagate the environment into the test child process"
This reverts commit r180046.
This reverts commit r180041.
These have broken buildbots for ~3 hours:
http://lab.llvm.org:8013/builders/clang-x86_64-darwin11-nobootstrap-RAincremental/builds/763
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180066
91177308-0d34-0410-b5e6-
96231b3b80d8
Matt Arsenault [Mon, 22 Apr 2013 22:49:11 +0000 (22:49 +0000)]
Remove unused DwarfSectionOffsetDirective string
The value isn't actually used, and setting it emits a COFF specific
directive.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180064
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Mon, 22 Apr 2013 22:47:22 +0000 (22:47 +0000)]
Move C++ code out of the C headers and into either C++ headers
or the C++ files themselves. This enables people to use
just a C compiler to interoperate with LLVM.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180063
91177308-0d34-0410-b5e6-
96231b3b80d8
Chad Rosier [Mon, 22 Apr 2013 22:38:35 +0000 (22:38 +0000)]
[ms-inline asm] Removed this unnecessary check. In the current implementation,
Disp will always be one of MCSymbolRefExpr or MCConstantExpr, and never NULL.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180059
91177308-0d34-0410-b5e6-
96231b3b80d8
Chad Rosier [Mon, 22 Apr 2013 22:30:01 +0000 (22:30 +0000)]
Add test case for PR15779, which has previously been fixed.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180058
91177308-0d34-0410-b5e6-
96231b3b80d8
Chad Rosier [Mon, 22 Apr 2013 22:12:12 +0000 (22:12 +0000)]
[ms-inline asm] Get the OpDecl and remove a redundant lookup.
Part of rdar://
13663589
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180057
91177308-0d34-0410-b5e6-
96231b3b80d8
Chad Rosier [Mon, 22 Apr 2013 22:04:25 +0000 (22:04 +0000)]
[ms-inline asm] Add the OpDecl to the InlineAsmIdentifierInfo struct and in turn
the MCParsedAsmOperand.
Part of rdar://
13663589
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180054
91177308-0d34-0410-b5e6-
96231b3b80d8
Eli Bendersky [Mon, 22 Apr 2013 21:21:08 +0000 (21:21 +0000)]
Optimize MachineBasicBlock::getSymbol by caching the symbol. Since the symbol
name computation is expensive, this helps save about 25% of the time spent in
this function.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180049
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Kleckner [Mon, 22 Apr 2013 20:58:09 +0000 (20:58 +0000)]
Add a missing reference on a std::vector<> out param
Pointed out by Eli. The test passes for me either way, so I missed
this.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180046
91177308-0d34-0410-b5e6-
96231b3b80d8
Anat Shemer [Mon, 22 Apr 2013 20:51:10 +0000 (20:51 +0000)]
Changed back (relative to commit 179786) the operations executed when extract(cast) is transformed to cast(extract). It uses the Builder class as before. In addition the result node is added to the Worklist, so all the previous extract users will become the new scalar cast users.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180045
91177308-0d34-0410-b5e6-
96231b3b80d8
Chad Rosier [Mon, 22 Apr 2013 20:42:32 +0000 (20:42 +0000)]
Fix unused variable warning.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180044
91177308-0d34-0410-b5e6-
96231b3b80d8
Eli Bendersky [Mon, 22 Apr 2013 20:30:50 +0000 (20:30 +0000)]
Fix comment that didn't match the method it was above
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180043
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Kleckner [Mon, 22 Apr 2013 20:23:41 +0000 (20:23 +0000)]
[Support] Propagate the environment into the test child process
Should fix the dragonegg bootstrap builder, which reasonably needs
LD_LIBRARY_PATH to be set.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180041
91177308-0d34-0410-b5e6-
96231b3b80d8
Akira Hatanaka [Mon, 22 Apr 2013 20:13:37 +0000 (20:13 +0000)]
80 columns.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180040
91177308-0d34-0410-b5e6-
96231b3b80d8
Akira Hatanaka [Mon, 22 Apr 2013 19:58:23 +0000 (19:58 +0000)]
[mips] In performDSPShiftCombine, check that all elements in the vector are
shifted by the same amount and the shift amount is smaller than the element
size.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180039
91177308-0d34-0410-b5e6-
96231b3b80d8
Chad Rosier [Mon, 22 Apr 2013 19:42:15 +0000 (19:42 +0000)]
[ms-inline asm] Remove the identifier parsing logic from the AsmParser. This is
now taken care of by the frontend, which allows us to parse arbitrary C/C++
variables.
Part of rdar://
13663589
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180037
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Kleckner [Mon, 22 Apr 2013 19:03:55 +0000 (19:03 +0000)]
[Support] Fix argv string escape bug on Windows
Summary:
This is http://llvm.org/PR15802. Backslashes preceding double quotes in
arguments must be escaped. The interesting bit is that all other
backslashes should *not* be escaped, because the un-escaping logic is
only triggered by the presence of a double quote character.
Reviewers: Bigcheese
CC: llvm-commits
Differential Revision: http://llvm-reviews.chandlerc.com/D705
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180035
91177308-0d34-0410-b5e6-
96231b3b80d8
Peter Collingbourne [Mon, 22 Apr 2013 18:48:56 +0000 (18:48 +0000)]
COFF: Fix weak external aliases.
Differential Revision: http://llvm-reviews.chandlerc.com/D700
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180034
91177308-0d34-0410-b5e6-
96231b3b80d8
Stephen Lin [Mon, 22 Apr 2013 17:23:49 +0000 (17:23 +0000)]
Extra paranoid test for r179925 (verify that tail calls are not generated to 'this'-returning constructors of objects with different 'this' pointers than the caller)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180032
91177308-0d34-0410-b5e6-
96231b3b80d8
Eli Bendersky [Mon, 22 Apr 2013 17:16:35 +0000 (17:16 +0000)]
Document the -filetype option of llc (PR #12902)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180031
91177308-0d34-0410-b5e6-
96231b3b80d8
Eli Bendersky [Mon, 22 Apr 2013 17:03:42 +0000 (17:03 +0000)]
Fix for PR 14965: Better error message for GEP with partially defined contents
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180030
91177308-0d34-0410-b5e6-
96231b3b80d8
Chad Rosier [Mon, 22 Apr 2013 17:01:46 +0000 (17:01 +0000)]
[ms-inline asm] Refactor/clean up the SemaLookup interface. No functional
change indended.
Part of rdar://
13663589
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180028
91177308-0d34-0410-b5e6-
96231b3b80d8
Jia Liu [Mon, 22 Apr 2013 16:26:15 +0000 (16:26 +0000)]
Add AArch64 into $llvm_cv_target_arch in configure, reviewed by Tim Northover & Eric Christopher
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180025
91177308-0d34-0410-b5e6-
96231b3b80d8
Jia Liu [Mon, 22 Apr 2013 15:40:16 +0000 (15:40 +0000)]
typo
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180023
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Mon, 22 Apr 2013 15:21:03 +0000 (15:21 +0000)]
Make doxygen comment match declaration.
Found by -Wdocumentation.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180021
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Mon, 22 Apr 2013 15:16:51 +0000 (15:16 +0000)]
Also verify llvm.compiler_used.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180020
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Mon, 22 Apr 2013 14:58:02 +0000 (14:58 +0000)]
Clarify that llvm.used can contain aliases.
Also add a check for llvm.used in the verifier and simplify clients now that
they can assume they have a ConstantArray.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180019
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Mon, 22 Apr 2013 14:11:25 +0000 (14:11 +0000)]
No really, don't store anything to this since it's unconditionally
set below.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180015
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Mon, 22 Apr 2013 13:51:44 +0000 (13:51 +0000)]
Remove variable store that is never read.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180014
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Mon, 22 Apr 2013 13:46:33 +0000 (13:46 +0000)]
Remove variable store that is never read.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180013
91177308-0d34-0410-b5e6-
96231b3b80d8
Stepan Dyatkovskiy [Mon, 22 Apr 2013 13:06:52 +0000 (13:06 +0000)]
Fix for 5.5 Parameter Passing --> Stage C:
-- C.4 and C.5 statements, when NSAA is not equal to SP.
-- C.1.cp statement for VA functions. Note: There are no VFP CPRCs in a
variadic procedure.
Before this patch "NSAA != 0" means "don't use GPRs anymore ". But there are
some exceptions in AAPCS.
1. For non VA function: allocate all VFP regs for CPRC. When all VFPs are allocated
CPRCs would be sent to stack, while non CPRCs may be still allocated in GRPs.
2. Check that for VA functions all params uses GPRs and then stack.
No exceptions, no CPRCs here.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180011
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Mon, 22 Apr 2013 10:45:06 +0000 (10:45 +0000)]
Add .ll as a valid test suffix for Object, this allows .ll -> object
and then dumping as tests.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180010
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Mon, 22 Apr 2013 10:27:32 +0000 (10:27 +0000)]
Add the same todo about a command iterator interface into the
other mach-o object file as well.
TODO: One interface to rule them all.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180009
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Mon, 22 Apr 2013 10:25:25 +0000 (10:25 +0000)]
Add a TODO about wanting an iterator interface.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180008
91177308-0d34-0410-b5e6-
96231b3b80d8
Nico Rieck [Mon, 22 Apr 2013 08:35:11 +0000 (08:35 +0000)]
llvm-readobj: Dump more COFF auxiliary records
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180007
91177308-0d34-0410-b5e6-
96231b3b80d8
Nico Rieck [Mon, 22 Apr 2013 08:34:59 +0000 (08:34 +0000)]
llvm-readobj: Check for null section pointer
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180006
91177308-0d34-0410-b5e6-
96231b3b80d8