platform/upstream/llvm.git
11 years agoAllow PopStackFrames leave the stack empty.
Evgeniy Stepanov [Wed, 21 Nov 2012 13:00:04 +0000 (13:00 +0000)]
Allow PopStackFrames leave the stack empty.

llvm-svn: 168425

11 years ago[asan/tsan] do not use __WORDSIZE macro, as it is glibc-private thing. Instead, defin...
Kostya Serebryany [Wed, 21 Nov 2012 12:38:58 +0000 (12:38 +0000)]
[asan/tsan] do not use __WORDSIZE macro, as it is glibc-private thing. Instead, define our own SANITIZER_WORDSIZE

llvm-svn: 168424

11 years agotsan: explictly say when we fail to restore a stack trace
Dmitry Vyukov [Wed, 21 Nov 2012 11:44:20 +0000 (11:44 +0000)]
tsan: explictly say when we fail to restore a stack trace

llvm-svn: 168423

11 years ago[Sanitizer] replace while with internal_memset to make sure compiler won't replace...
Alexey Samsonov [Wed, 21 Nov 2012 11:12:57 +0000 (11:12 +0000)]
[Sanitizer] replace while with internal_memset to make sure compiler won't replace it with library memset

llvm-svn: 168422

11 years agotsan: fix handling of signals
Dmitry Vyukov [Wed, 21 Nov 2012 11:12:33 +0000 (11:12 +0000)]
tsan: fix handling of signals
(do not execute synchronous signals in recursive interceptors)

llvm-svn: 168421

11 years agoUse color for -ast-dump-filter only when it is supported
Dmitri Gribenko [Wed, 21 Nov 2012 10:54:55 +0000 (10:54 +0000)]
Use color for -ast-dump-filter only when it is supported

Patch by Philip Craig.

llvm-svn: 168420

11 years agoPR14055: Implement support for sub-vector operations in SROA.
Chandler Carruth [Wed, 21 Nov 2012 08:16:30 +0000 (08:16 +0000)]
PR14055: Implement support for sub-vector operations in SROA.

Now if we can transform an alloca into a single vector value, but it has
subvector, non-element accesses, we form the appropriate shufflevectors
to allow SROA to proceed. This fixes PR14055 which pointed out a very
common pattern that SROA couldn't handle -- mixed vec3 and vec4
operations on a single alloca.

llvm-svn: 168418

11 years agoFix execution domain for packed FMA4 instructions.
Craig Topper [Wed, 21 Nov 2012 08:08:21 +0000 (08:08 +0000)]
Fix execution domain for packed FMA4 instructions.

llvm-svn: 168417

11 years agoMark ISD::FMA as Legal instead of custom for x86 with FMA3/FMA4. Needed so that llvm...
Craig Topper [Wed, 21 Nov 2012 05:36:24 +0000 (05:36 +0000)]
Mark ISD::FMA as Legal instead of custom for x86 with FMA3/FMA4. Needed so that llvm.muladd can be converted to ISD::FMA for fp_contract.

llvm-svn: 168413

11 years agoRemove redundant code.
Rafael Espindola [Wed, 21 Nov 2012 02:53:22 +0000 (02:53 +0000)]
Remove redundant code.

llvm-svn: 168411

11 years agoRemove redundant code.
Rafael Espindola [Wed, 21 Nov 2012 02:47:19 +0000 (02:47 +0000)]
Remove redundant code.

llvm-svn: 168410

11 years agoMake calcLiveInMask method static.
Jakub Staszak [Wed, 21 Nov 2012 00:59:34 +0000 (00:59 +0000)]
Make calcLiveInMask method static.

llvm-svn: 168409

11 years agoMake isScratchReg and isFPCopy methods static.
Jakub Staszak [Wed, 21 Nov 2012 00:50:57 +0000 (00:50 +0000)]
Make isScratchReg and isFPCopy methods static.

llvm-svn: 168407

11 years agoWhitespace.
Eric Christopher [Wed, 21 Nov 2012 00:34:38 +0000 (00:34 +0000)]
Whitespace.

llvm-svn: 168402

11 years agoUpdate for some of the coding standard before rearranging functions
Eric Christopher [Wed, 21 Nov 2012 00:34:35 +0000 (00:34 +0000)]
Update for some of the coding standard before rearranging functions
around.

llvm-svn: 168401

11 years agoUpdate some comments.
Eric Christopher [Wed, 21 Nov 2012 00:17:49 +0000 (00:17 +0000)]
Update some comments.

llvm-svn: 168400

11 years agoUpdate and add some comments.
Eric Christopher [Wed, 21 Nov 2012 00:03:31 +0000 (00:03 +0000)]
Update and add some comments.

llvm-svn: 168399

11 years agoWhitespace.
Eric Christopher [Wed, 21 Nov 2012 00:03:28 +0000 (00:03 +0000)]
Whitespace.

llvm-svn: 168398

11 years agoAdd a tests for the new -no-show-raw-insn option of llvm-objdump.
Eli Bendersky [Tue, 20 Nov 2012 23:44:22 +0000 (23:44 +0000)]
Add a tests for the new -no-show-raw-insn option of llvm-objdump.

This also initiates a test/tools directory where tools-specific tests can be
placed.

llvm-svn: 168397

11 years agoAdd obvious constantness.
Jakub Staszak [Tue, 20 Nov 2012 23:32:32 +0000 (23:32 +0000)]
Add obvious constantness.

llvm-svn: 168396

11 years agoRemove constness from this, it modifies the output stream as does
Eric Christopher [Tue, 20 Nov 2012 23:30:11 +0000 (23:30 +0000)]
Remove constness from this, it modifies the output stream as does
everything else underneath.

llvm-svn: 168395

11 years agoDon't walk a linked list twice in the same function. On my machine this takes
Rafael Espindola [Tue, 20 Nov 2012 23:23:57 +0000 (23:23 +0000)]
Don't walk a linked list twice in the same function. On my machine this takes
"clang -cc1" on a file with 10k repetitions of
extern int no_such_variable;
from 1.434s to 1.133s.

llvm-svn: 168394

11 years agoAdd the -no-show-raw-insn option to llvm-objdump, thus making it a bit more
Eli Bendersky [Tue, 20 Nov 2012 22:57:02 +0000 (22:57 +0000)]
Add the -no-show-raw-insn option to llvm-objdump, thus making it a bit more
conformant to binutils objdump.

llvm-svn: 168393

11 years agoremoves a few "const" qualifiers
Sebastian Pop [Tue, 20 Nov 2012 22:28:04 +0000 (22:28 +0000)]
removes a few "const" qualifiers

so that I can (someday) call SE->getSCEV without complaint.
No semantic change intended.

Patch from Preston Briggs <preston.briggs@gmail.com>.

llvm-svn: 168391

11 years ago[python] fix get_library()
Anders Waldenborg [Tue, 20 Nov 2012 22:27:55 +0000 (22:27 +0000)]
[python] fix get_library()

Before this fix, the LLVM Python bindings on SVN trunk always fail with:
Exception: LLVM shared library not found!
since it's still looking for a library named "LLVM-3.1svn".

Besides updating the LLVM version in the library name,
this patch also changes llvm.get_library() to make it possible to run
the unit tests without installing the LLVM shared library into a
default linker search path.

e.g. after this patch, running the llvm/python unit tests with:
LD_LIBRARY_PATH=../build/Debug+Asserts/lib nosetests -v bindings/python/llvm/tests/
would work on Linux.

Patch from Scott Tsai (with some minor modifications)

Patch also acked by Gregory Szorc

llvm-svn: 168390

11 years agoRemoving some unused instruction definitions from the Hexagon backend.
Jyotsna Verma [Tue, 20 Nov 2012 22:14:23 +0000 (22:14 +0000)]
Removing some unused instruction definitions from the Hexagon backend.

llvm-svn: 168388

11 years agoRemove unused function argument, add a bit to the comment.
Eric Christopher [Tue, 20 Nov 2012 22:14:13 +0000 (22:14 +0000)]
Remove unused function argument, add a bit to the comment.

llvm-svn: 168387

11 years agoFormatting.
Eric Christopher [Tue, 20 Nov 2012 20:34:47 +0000 (20:34 +0000)]
Formatting.

llvm-svn: 168384

11 years agoWhitespace.
Eric Christopher [Tue, 20 Nov 2012 20:34:44 +0000 (20:34 +0000)]
Whitespace.

llvm-svn: 168383

11 years agoClear auto-confirm setting on teardown for tests that use it
Daniel Malea [Tue, 20 Nov 2012 19:46:54 +0000 (19:46 +0000)]
Clear auto-confirm setting on teardown for tests that use it

llvm-svn: 168382

11 years agoSome sphinx-ing and consistency fixes
Eli Bendersky [Tue, 20 Nov 2012 19:37:58 +0000 (19:37 +0000)]
Some sphinx-ing and consistency fixes

llvm-svn: 168380

11 years agoUse auto-confirm setting to avoid prompts causing some tests to appear to hang
Daniel Malea [Tue, 20 Nov 2012 18:53:21 +0000 (18:53 +0000)]
Use auto-confirm setting to avoid prompts causing some tests to appear to hang
- this commit addresses bugzilla #14385

llvm-svn: 168375

11 years agoRemove some dead code.
Eric Christopher [Tue, 20 Nov 2012 18:37:40 +0000 (18:37 +0000)]
Remove some dead code.

llvm-svn: 168374

11 years agoBetter 80cols... *sigh*
Joe Abbey [Tue, 20 Nov 2012 18:14:15 +0000 (18:14 +0000)]
Better 80cols... *sigh*

llvm-svn: 168373

11 years agoFixing a broken link.
Joe Abbey [Tue, 20 Nov 2012 17:51:08 +0000 (17:51 +0000)]
Fixing a broken link.

llvm-svn: 168372

11 years agoFix incorrect usage of buildDsym() in dwarf test
Daniel Malea [Tue, 20 Nov 2012 16:08:36 +0000 (16:08 +0000)]
Fix incorrect usage of buildDsym() in dwarf test

llvm-svn: 168371

11 years agoSkip dsym tests on Linux
Daniel Malea [Tue, 20 Nov 2012 16:07:33 +0000 (16:07 +0000)]
Skip dsym tests on Linux

llvm-svn: 168370

11 years ago[asan] pop the two internal functions from the stack trace produced by _Unwind_Backtr...
Kostya Serebryany [Tue, 20 Nov 2012 15:15:44 +0000 (15:15 +0000)]
[asan] pop the two internal functions from the stack trace produced by _Unwind_Backtrace (Peter Bergner)

llvm-svn: 168369

11 years ago[asan] use names of globals instead of an external set to distinguish the globals...
Kostya Serebryany [Tue, 20 Nov 2012 14:16:08 +0000 (14:16 +0000)]
[asan] use names of globals instead of an external set to distinguish the globals generated by asan

llvm-svn: 168368

11 years ago[asan] don't instrument linker-initialized globals even with external linkage in...
Kostya Serebryany [Tue, 20 Nov 2012 13:11:32 +0000 (13:11 +0000)]
[asan] don't instrument linker-initialized globals even with external linkage in -asan-initialization-order mode

llvm-svn: 168367

11 years ago[asan] make sure that linker-initialized globals (non-extern) are not instrumented...
Kostya Serebryany [Tue, 20 Nov 2012 13:00:01 +0000 (13:00 +0000)]
[asan] make sure that linker-initialized globals (non-extern) are not instrumented even in -asan-initialization-order mode. This time with a test

llvm-svn: 168366

11 years agodocs: Fix highlighting.
Sean Silva [Tue, 20 Nov 2012 12:36:27 +0000 (12:36 +0000)]
docs: Fix highlighting.

.git/config was marked as "bash" instead of "ini".

llvm-svn: 168365

11 years agollvm/test/ExecutionEngine/MCJIT/lit.local.cfg: ppc32-elf is not ready.
NAKAMURA Takumi [Tue, 20 Nov 2012 10:49:01 +0000 (10:49 +0000)]
llvm/test/ExecutionEngine/MCJIT/lit.local.cfg: ppc32-elf is not ready.

llvm-svn: 168364

11 years agoFix a place where the declaration didn't use LLVM_ENABLE_DUMP but the
Chandler Carruth [Tue, 20 Nov 2012 10:23:50 +0000 (10:23 +0000)]
Fix a place where the declaration didn't use LLVM_ENABLE_DUMP but the
definition did.

The last part of PR14324.

llvm-svn: 168363

11 years agoUse LLVM_ENABLE_DUMP for the variables used in printing as well as the
Chandler Carruth [Tue, 20 Nov 2012 10:23:07 +0000 (10:23 +0000)]
Use LLVM_ENABLE_DUMP for the variables used in printing as well as the
printing functions themselves.

Part of PR14324 (which should have just been a patch to the list, but
hey...)

llvm-svn: 168362

11 years agoFix PR14132 and handle OOB loads speculated throuh PHI nodes.
Chandler Carruth [Tue, 20 Nov 2012 10:02:19 +0000 (10:02 +0000)]
Fix PR14132 and handle OOB loads speculated throuh PHI nodes.

The issue is that we may end up with newly OOB loads when speculating
a load into the predecessors of a PHI node, and this confuses the new
integer splitting logic in some cases, triggering an assertion failure.
In fact, the branch in question must be dead code as it loads from
a too-narrow alloca. Add code to handle this gracefully and leave the
requisite FIXMEs for both optimizing more aggressively and doing more to
aid sanitizing invalid code which triggers these patterns.

llvm-svn: 168361

11 years agoFix physical register liveness calculations:
Tim Northover [Tue, 20 Nov 2012 09:56:11 +0000 (09:56 +0000)]
Fix physical register liveness calculations:

+ Take account of clobbers
+ Give outputs priority over inputs since they happen later.

llvm-svn: 168360

11 years agoIntel OCL built-ins calling conventions now support MacOS 32-bit.
Elena Demikhovsky [Tue, 20 Nov 2012 09:37:57 +0000 (09:37 +0000)]
Intel OCL built-ins calling conventions now support MacOS 32-bit.

llvm-svn: 168359

11 years ago[asan] better support for powerpc and sparc targets (thanks to H.J. Liu and David...
Kostya Serebryany [Tue, 20 Nov 2012 08:57:26 +0000 (08:57 +0000)]
[asan] better support for powerpc and sparc targets (thanks to H.J. Liu and David Miller)

llvm-svn: 168358

11 years agoMarking remote mcjit tests as XFAIL for MIPS.
Simon Atanasyan [Tue, 20 Nov 2012 07:25:17 +0000 (07:25 +0000)]
Marking remote mcjit tests as XFAIL for MIPS.

llvm-svn: 168357

11 years ago[asan] more support for powerpc, patch by Peter Bergner
Kostya Serebryany [Tue, 20 Nov 2012 07:00:42 +0000 (07:00 +0000)]
[asan] more support for powerpc, patch by Peter Bergner

llvm-svn: 168356

11 years agoUpdate method calls to the new interface re r168354.
Bill Wendling [Tue, 20 Nov 2012 05:09:43 +0000 (05:09 +0000)]
Update method calls to the new interface re r168354.

llvm-svn: 168355

11 years agoMake the AttrListPtr object a part of the LLVMContext.
Bill Wendling [Tue, 20 Nov 2012 05:09:20 +0000 (05:09 +0000)]
Make the AttrListPtr object a part of the LLVMContext.

When code deletes the context, the AttributeImpls that the AttrListPtr points to
are now invalid. Therefore, instead of keeping a separate managed static for the
AttrListPtrs that's reference counted, move it into the LLVMContext and delete
it when deleting the AttributeImpls.

llvm-svn: 168354

11 years agoNote Freescale's contributions in the PPC release notes.
Hal Finkel [Tue, 20 Nov 2012 04:20:31 +0000 (04:20 +0000)]
Note Freescale's contributions in the PPC release notes.

This mainly reflects the work of Tobias von Koch.

llvm-svn: 168352

11 years agodocs: Sphinxify LLVMBuild documentation.
Sean Silva [Tue, 20 Nov 2012 03:13:53 +0000 (03:13 +0000)]
docs: Sphinxify LLVMBuild documentation.

llvm-svn: 168348

11 years agoAdd a comment to associate a FIXME with a PR where it is matters.
Chandler Carruth [Tue, 20 Nov 2012 01:27:48 +0000 (01:27 +0000)]
Add a comment to associate a FIXME with a PR where it is matters.

llvm-svn: 168347

11 years agoRework the rewriting of loads and stores for vector and integer allocas
Chandler Carruth [Tue, 20 Nov 2012 01:12:50 +0000 (01:12 +0000)]
Rework the rewriting of loads and stores for vector and integer allocas
to properly handle the combinations of these with split integer loads
and stores. This essentially replaces Evan's r168227 by refactoring the
code in a different way, and trynig to mirror that refactoring in both
the load and store sides of the rewriting.

Generally speaking there was some really problematic duplicated code
here that led to poorly founded assumptions and then subtle bugs. Now
much of the code actually flows through and follows a more consistent
style and logical path. There is still a tiny bit of duplication on the
store side of things, but it is much less bad.

This also changes the logic to never re-use a load or store instruction
as that was simply too error prone in practice.

I've added a few tests (one a reduction of the one in Evan's original
patch, which happened to be the same as the report in PR14349). I'm
going to look at adding a few more tests for things I found and fixed in
passing (such as the volatile tests in the vectorizable predicate).

This patch has survived bootstrap, and modulo one bugfix survived
Duncan's test suite, but let me know if anything else explodes.

llvm-svn: 168346

11 years agoReST-ify some markup in the LIT document
Eli Bendersky [Tue, 20 Nov 2012 00:26:08 +0000 (00:26 +0000)]
ReST-ify some markup in the LIT document

llvm-svn: 168345

11 years ago80-column and whitespace fixups.
Eric Christopher [Tue, 20 Nov 2012 00:15:36 +0000 (00:15 +0000)]
80-column and whitespace fixups.

llvm-svn: 168344

11 years agoRest of the fix for Thread
Filipe Cabecinhas [Tue, 20 Nov 2012 00:11:13 +0000 (00:11 +0000)]
Rest of the fix for Thread

llvm-svn: 168343

11 years agoRemove unneeded const qualifier
Filipe Cabecinhas [Tue, 20 Nov 2012 00:03:38 +0000 (00:03 +0000)]
Remove unneeded const qualifier

llvm-svn: 168342

11 years agoAllow using MemoryBuffers with yaml::Stream directly.
Sean Silva [Mon, 19 Nov 2012 23:21:47 +0000 (23:21 +0000)]
Allow using MemoryBuffers with yaml::Stream directly.

The rationale is to get YAML filenames in diagnostics from
yaml::Stream::printError -- currently the filename is hard-coded as
"YAML" because there's no buffer information available.

Patch by Kim Gräsman!

llvm-svn: 168341

11 years agoFix some trailing whitespace (on a blank line) to cycle/test bots.
David Blaikie [Mon, 19 Nov 2012 23:12:51 +0000 (23:12 +0000)]
Fix some trailing whitespace (on a blank line) to cycle/test bots.

llvm-svn: 168340

11 years agoRemove unused member variable.
Filipe Cabecinhas [Mon, 19 Nov 2012 23:00:57 +0000 (23:00 +0000)]
Remove unused member variable.

llvm-svn: 168339

11 years agoRemove a function argument and propagate const around accordingly.
Eric Christopher [Mon, 19 Nov 2012 22:42:15 +0000 (22:42 +0000)]
Remove a function argument and propagate const around accordingly.

llvm-svn: 168338

11 years agoWhitespace and 80-col.
Eric Christopher [Mon, 19 Nov 2012 22:42:10 +0000 (22:42 +0000)]
Whitespace and 80-col.

llvm-svn: 168337

11 years agodocs: Fix reference to "bold" part of code example.
Sean Silva [Mon, 19 Nov 2012 21:18:50 +0000 (21:18 +0000)]
docs: Fix reference to "bold" part of code example.

Fixes PR14380.

The prose was referring to a "bold" part of the code example, where the
boldness was lost in the transition from HTML. Unlike HTML, where one
can easily have a <b> inside a <pre>, reStructuredText is generally
unable to represent such nested markup.

Hack around it with the :emphasise-lines: option to the  code-block
directive to single out the regions instead. Thankfully the regions are
close-enough to being full lines for this to work.

llvm-svn: 168329

11 years agoMake AsmPrinter::EmitTTypeReference() more robust - put
Anton Korobeynikov [Mon, 19 Nov 2012 21:17:20 +0000 (21:17 +0000)]
Make AsmPrinter::EmitTTypeReference() more robust - put
the zero GV check inside, so we won't forget it at the caller side.

llvm-svn: 168328

11 years agoPR14381: Never skip constexpr function bodies when code-completing. We may need
Richard Smith [Mon, 19 Nov 2012 21:13:18 +0000 (21:13 +0000)]
PR14381: Never skip constexpr function bodies when code-completing. We may need
them in order to parse the rest of the file.

llvm-svn: 168327

11 years agoFactor out type info emission into separate routine.
Anton Korobeynikov [Mon, 19 Nov 2012 21:06:26 +0000 (21:06 +0000)]
Factor out type info emission into separate routine.
It turned out that ARM wants different layout of type infos.
This is yet another patch in attempt to fix PR7187

llvm-svn: 168325

11 years agoTemporarily skip tests known to hang on Linux
Daniel Malea [Mon, 19 Nov 2012 20:55:52 +0000 (20:55 +0000)]
Temporarily skip tests known to hang on Linux
- opened bugzilla defects #14384 and #14385

llvm-svn: 168323

11 years agoLinux fix: remove reference to cellspu (backend removed in llvm r167984)
Daniel Malea [Mon, 19 Nov 2012 19:46:04 +0000 (19:46 +0000)]
Linux fix: remove reference to cellspu (backend removed in llvm r167984)

llvm-svn: 168322

11 years agoMove section label emission to module end. Nothing should be
Eric Christopher [Mon, 19 Nov 2012 19:43:59 +0000 (19:43 +0000)]
Move section label emission to module end. Nothing should be
depending on them being emitted before the text and/or data
sections and testing didn't uncover any.

llvm-svn: 168321

11 years agoHandle mixed normal and early-clobber defs on inline asm.
Jakob Stoklund Olesen [Mon, 19 Nov 2012 19:31:10 +0000 (19:31 +0000)]
Handle mixed normal and early-clobber defs on inline asm.

PR14376.

llvm-svn: 168320

11 years agoFix a pasto.
Eric Christopher [Mon, 19 Nov 2012 19:31:02 +0000 (19:31 +0000)]
Fix a pasto.

Noticed by Dimitri Andric!

llvm-svn: 168319

11 years ago80 cols
Joe Abbey [Mon, 19 Nov 2012 19:22:55 +0000 (19:22 +0000)]
80 cols

llvm-svn: 168318

11 years agoWhen adding a NamedDecl to a correction, add the underlying Decl (via
Kaelyn Uhrain [Mon, 19 Nov 2012 18:49:53 +0000 (18:49 +0000)]
When adding a NamedDecl to a correction, add the underlying Decl (via
getUnderlyingDecl()) so that derivatives of
CorrectionCandidateCallback::ValidateCandidate(...) don't have to worry
about being thrown by UsingDecls and such.

llvm-svn: 168317

11 years agoEnable MCJIT tests on PowerPC.
Ulrich Weigand [Mon, 19 Nov 2012 17:57:07 +0000 (17:57 +0000)]
Enable MCJIT tests on PowerPC.
Disable old JIT tests on PowerPC.

llvm-svn: 168316

11 years agoAdded malloc introspection commands for Mac OS X for both GDB and LLDB.
Greg Clayton [Mon, 19 Nov 2012 17:47:29 +0000 (17:47 +0000)]
Added malloc introspection commands for Mac OS X for both GDB and LLDB.

llvm-svn: 168315

11 years agoAdd more info for shell commands being used by DebugSymbols.framework.
Greg Clayton [Mon, 19 Nov 2012 17:38:24 +0000 (17:38 +0000)]
Add more info for shell commands being used by DebugSymbols.framework.

llvm-svn: 168314

11 years agoAdd myself as owner of the Hexagon backend.
Anshuman Dasgupta [Mon, 19 Nov 2012 15:40:22 +0000 (15:40 +0000)]
Add myself as owner of the Hexagon backend.

llvm-svn: 168312

11 years agoMake polly -Wdocumentation clean
Tobias Grosser [Mon, 19 Nov 2012 12:26:25 +0000 (12:26 +0000)]
Make polly -Wdocumentation clean

llvm-svn: 168311

11 years agoAdd -ldl for non-static libgcc in Android.
Logan Chien [Mon, 19 Nov 2012 12:04:11 +0000 (12:04 +0000)]
Add -ldl for non-static libgcc in Android.

According to Android ABI, we have to link with
libdl.so, if we are linking with non-static libgcc.

Besides, this also fixes MIPS link error of
undefined references to `_Unwind_Find_FDE' and
`dl_iterate_phdr'.

llvm-svn: 168310

11 years agoEnable -fuse-init-array for Android X86/MIPS.
Logan Chien [Mon, 19 Nov 2012 11:45:31 +0000 (11:45 +0000)]
Enable -fuse-init-array for Android X86/MIPS.

The dynamic linker of Android does not support .ctors/.dtors.
We should emit .init_array and .fini_array regardless the
gcc version.

NOTE: This patch does not affect the ARM backend, because
it is required to generate .init_array and .fini_array
for program targeting ARM AAPCS and AEABI.

llvm-svn: 168309

11 years ago[ASan] use raw Exit() to kill the program in case ASan finds an error while reporting...
Alexey Samsonov [Mon, 19 Nov 2012 11:22:22 +0000 (11:22 +0000)]
[ASan] use raw Exit() to kill the program in case ASan finds an error while reporting the error in the same thread

llvm-svn: 168308

11 years ago[asan] support x32 mode in the fast stack unwinder. Patch by H.J. Lu
Kostya Serebryany [Mon, 19 Nov 2012 10:31:00 +0000 (10:31 +0000)]
[asan] support x32 mode in the fast stack unwinder. Patch by H.J. Lu

llvm-svn: 168306

11 years ago[ASan] change interface of GetAccumulatedStats() function to prevent Clang from inser...
Alexey Samsonov [Mon, 19 Nov 2012 10:25:17 +0000 (10:25 +0000)]
[ASan] change interface of GetAccumulatedStats() function to prevent Clang from inserting memcpy() call into runtime.

llvm-svn: 168305

11 years agoPromote the constant 1 to long long, 1LL or 1ULL in int64_t-sensitive context.
NAKAMURA Takumi [Mon, 19 Nov 2012 10:03:09 +0000 (10:03 +0000)]
Promote the constant 1 to long long, 1LL or 1ULL in int64_t-sensitive context.

llvm-svn: 168304

11 years agoclang/test: Suppress two tests on LLP64 target, Windows x64.
NAKAMURA Takumi [Mon, 19 Nov 2012 10:00:59 +0000 (10:00 +0000)]
clang/test: Suppress two tests on LLP64 target, Windows x64.

llvm-svn: 168303

11 years agoFirst version of Polly release notes for 3.2
Tobias Grosser [Mon, 19 Nov 2012 08:58:29 +0000 (08:58 +0000)]
First version of Polly release notes for 3.2

llvm-svn: 168302

11 years ago[asan] support PowerPC and SPARC in sanitizer_linux.cc
Kostya Serebryany [Mon, 19 Nov 2012 07:53:36 +0000 (07:53 +0000)]
[asan] support PowerPC and SPARC in sanitizer_linux.cc

llvm-svn: 168301

11 years agoClean up handling of always-inline functions in the inliner.
Bob Wilson [Mon, 19 Nov 2012 07:04:35 +0000 (07:04 +0000)]
Clean up handling of always-inline functions in the inliner.

This patch moves the isInlineViable function from the InlineAlways pass into
the InlineCostAnalyzer and then changes the InlineCost computation to use that
simple check for always-inline functions. All the special-case checks for
AlwaysInline in the CallAnalyzer can then go away.

llvm-svn: 168300

11 years agoSome comment fixes.
Bob Wilson [Mon, 19 Nov 2012 07:04:30 +0000 (07:04 +0000)]
Some comment fixes.

llvm-svn: 168299

11 years agoCompletely re-work how the Clang driver interprets PIC and PIE options.
Chandler Carruth [Mon, 19 Nov 2012 03:52:03 +0000 (03:52 +0000)]
Completely re-work how the Clang driver interprets PIC and PIE options.

There were numerous issues here that were all entangled, and so I've
tried to do a general simplification of the logic.
1) The logic was mimicing actual GCC bugs, rather than "features". These
   have been fixed in trunk GCC, and this fixes Clang as well. Notably,
   the logic was always intended to be last-match-wins like any other
   flag.
2) The logic for handling '-mdynamic-no-pic' was preposterously unclear.
   It also allowed the use of this flag on non-Darwin platforms where it
   has no actual meaning. Now this option is handled directly based on
   tests of how llvm-gcc behaves, and it is only supported on Darwin.
3) The APIs for the Driver's ToolChains had the implementation ugliness
   of dynamic-no-pic leaking through them. They also had the
   implementation details of the LLVM relocation model flag names
   leaking through.
4) The actual results of passing these flags was incorrect on Darwin in
   many cases. For example, Darwin *always* uses PIC level 2 if it uses
   in PIC level, and Darwin *always* uses PIC on 64-bit regardless of
   the flags specified, including -fPIE. Darwin never compiles in PIE
   mode, but it can *link* in PIE mode.
5) Also, PIC was not always being enabled even when PIE was. This isn't
   a supported mode at all and may have caused some fallout in builds
   with complex PIC and PIE interactions.

The result is (I hope) cleaner and clearer for readers. I've also left
comments and tests about some of the truly strage behavior that is
observed on Darwin platforms. We have no real testing of Windows
platforms and PIC, but I don't have the tools handy to figure that out.
Hopefully others can beef up our testing here.

Unfortunately, I can't test this for every platform. =/ If folks have
dependencies on these flags that aren't covered by tests, they may
break. I've audited and ensured that all the changes in behavior of the
existing tests are intentional and good. In particular I've tried to
make sure the Darwin behavior (which is more suprising than the Linux
behavior) also matches that of 'gcc' on my mac.

llvm-svn: 168297

11 years agoRemove a no-op 'const' from a by-value return type.
Chandler Carruth [Mon, 19 Nov 2012 03:52:00 +0000 (03:52 +0000)]
Remove a no-op 'const' from a by-value return type.

llvm-svn: 168296

11 years agoRecursiveASTVisitor.h: Rework Doug's r160404, "Eliminating the GCC_CAST hack, take...
NAKAMURA Takumi [Mon, 19 Nov 2012 00:51:37 +0000 (00:51 +0000)]
RecursiveASTVisitor.h: Rework Doug's r160404, "Eliminating the GCC_CAST hack, take two."

With this, ARCMT tests would not crash on certain hosts with g++ -O2, eg. cygwin g++-4.5.3.

r160404 crashed mingw32-g++-4.4.0. I guess method's pointer in conditional expression could not be handled.

llvm-svn: 168295

11 years agoMove else onto line with preceding closing brace.
Craig Topper [Mon, 19 Nov 2012 00:11:50 +0000 (00:11 +0000)]
Move else onto line with preceding closing brace.

llvm-svn: 168294

11 years agoRemove redundant (duplicated) check.
Dmitri Gribenko [Sun, 18 Nov 2012 22:28:42 +0000 (22:28 +0000)]
Remove redundant (duplicated) check.

llvm-svn: 168293

11 years agoRemove the last bit of constant folding from LinearizeExprTree (most of it was
Duncan Sands [Sun, 18 Nov 2012 20:15:36 +0000 (20:15 +0000)]
Remove the last bit of constant folding from LinearizeExprTree (most of it was
removed in commit 168035, but I missed this bit).

llvm-svn: 168292

11 years agoFix PR14060, an infinite loop in reassociate. The problem was that one of the
Duncan Sands [Sun, 18 Nov 2012 19:27:01 +0000 (19:27 +0000)]
Fix PR14060, an infinite loop in reassociate.  The problem was that one of the
operands of the expression being written was wrongly thought to be reusable as
an inner node of the expression resulting in it turning up as both an inner node
*and* a leaf, creating a cycle in the def-use graph.  This would have caused the
verifier to blow up if things had gotten that far, however it managed to provoke
an infinite loop first.

llvm-svn: 168291