platform/upstream/llvm.git
11 years agoMinor documentation cleanup
James Dennett [Thu, 4 Jul 2013 22:14:20 +0000 (22:14 +0000)]
Minor documentation cleanup

llvm-svn: 185672

11 years agoPass tid through to ptrace operations
Ed Maste [Thu, 4 Jul 2013 21:47:32 +0000 (21:47 +0000)]
Pass tid through to ptrace operations

This change is equivalent to the Linux threading support.

llvm-svn: 185671

11 years agoInitialize object file info before output streamer
Nico Rieck [Thu, 4 Jul 2013 21:37:26 +0000 (21:37 +0000)]
Initialize object file info before output streamer

r179494 switched to using the object file info to retrieve the default text
section for some MC streamers. It is possible that initializing an MC
streamer can request sections before the object file info is initialized
when the AutoInitSections flag is set on the streamer.

llvm-svn: 185670

11 years agoMC: Add .section directive to COFF
Nico Rieck [Thu, 4 Jul 2013 21:32:07 +0000 (21:32 +0000)]
MC: Add .section directive to COFF

Supports GAS flags "abdnrswxy". No support for alignment or subsections.

Fixes PR16366.

llvm-svn: 185669

11 years agoAdd test for r185584.
Roman Divacky [Thu, 4 Jul 2013 21:29:24 +0000 (21:29 +0000)]
Add test for r185584.

llvm-svn: 185668

11 years agoInstCombine: Reimplementation of visitUDivOperand
David Majnemer [Thu, 4 Jul 2013 21:17:49 +0000 (21:17 +0000)]
InstCombine: Reimplementation of visitUDivOperand

This transform was originally added in r185257 but later removed in
r185415.  The original transform would create instructions speculatively
and then discard them if the speculation was proved incorrect.  This has
been replaced with a scheme that splits the transform into two parts:
preflight and fold.  While we preflight, we build up fold actions that
inform the folding stage on how to act.

llvm-svn: 185667

11 years agoRemoved extension in [unordered_][multi]map which allowed one to emplace using just...
Howard Hinnant [Thu, 4 Jul 2013 20:59:16 +0000 (20:59 +0000)]
Removed extension in [unordered_][multi]map which allowed one to emplace using just an argument for the key, as opposed to using piecewise_construct.  However a bug report exposed that this created an unfortunate ambiguity.  People who are currently using the extension will be notified the next time they compile, and will have to change to using piecewise_construct.  There are no ABI issues with the removal of this extension.  This fixes llvm.org/bugs/show_bug.cgi?id=16542

llvm-svn: 185666

11 years agoSimplify comparators of [unordered_][multi]map. This fixes http://llvm.org/bugs...
Howard Hinnant [Thu, 4 Jul 2013 19:46:35 +0000 (19:46 +0000)]
Simplify comparators of [unordered_][multi]map.  This fixes llvm.org/bugs/show_bug.cgi?id=16538

llvm-svn: 185665

11 years agoAdd support for archives with no symbol table or string table.
Rafael Espindola [Thu, 4 Jul 2013 19:40:23 +0000 (19:40 +0000)]
Add support for archives with no symbol table or string table.

llvm-svn: 185664

11 years agoFix leak. Should bring back the valgrind bot.
Rafael Espindola [Thu, 4 Jul 2013 19:20:00 +0000 (19:20 +0000)]
Fix leak. Should bring back the valgrind bot.

llvm-svn: 185663

11 years ago[PowerPC] Implement writeNopData
Ulrich Weigand [Thu, 4 Jul 2013 18:28:46 +0000 (18:28 +0000)]
[PowerPC] Implement writeNopData

This implements a proper PPCAsmBackend::writeNopData routine
that actually writes PowerPC nop instructions.

This fixes the last remaining difference in object file output
(text section) between the integrated assembler and GNU as
that I've seen anywhere.

llvm-svn: 185662

11 years agoAvoid crash if we fail to resolve process in attach
Ed Maste [Thu, 4 Jul 2013 18:25:34 +0000 (18:25 +0000)]
Avoid crash if we fail to resolve process in attach

llvm-svn: 185661

11 years agocpp11-migrate: Minor command-line fixes and improvements
Edwin Vane [Thu, 4 Jul 2013 17:49:59 +0000 (17:49 +0000)]
cpp11-migrate: Minor command-line fixes and improvements

* all transforms are in the same category
* all transforms' options are in the same category
* display the CommonOptionParser extra-help (which describe in more details the
  compilation database stuff)
* add EXAMPLES section

Author: Guillaume Papin <guillaume.papin@epitech.eu>
llvm-svn: 185660

11 years agoAdd 'not' in front of a command that is expected to fail.
Rafael Espindola [Thu, 4 Jul 2013 17:21:01 +0000 (17:21 +0000)]
Add 'not' in front of a command that is expected to fail.

llvm-svn: 185659

11 years agoAdd 'not' to command lines that are expected to fail.
Rafael Espindola [Thu, 4 Jul 2013 17:08:11 +0000 (17:08 +0000)]
Add 'not' to command lines that are expected to fail.

llvm-svn: 185658

11 years agoDon't pass llvm::errs() all over the place. Diagnostics always go to stderr.
Rafael Espindola [Thu, 4 Jul 2013 17:06:04 +0000 (17:06 +0000)]
Don't pass llvm::errs() all over the place. Diagnostics always go to stderr.

llvm-svn: 185657

11 years agoChanging long to int for consistency.
Aaron Ballman [Thu, 4 Jul 2013 17:05:21 +0000 (17:05 +0000)]
Changing long to int for consistency.

llvm-svn: 185656

11 years agoReturn 0 when processing --help. This matches gnu ld and gold.
Rafael Espindola [Thu, 4 Jul 2013 16:50:47 +0000 (16:50 +0000)]
Return 0 when processing --help. This matches gnu ld and gold.

llvm-svn: 185655

11 years agoAdd 'not' to commands that are expected to fail.
Rafael Espindola [Thu, 4 Jul 2013 16:28:28 +0000 (16:28 +0000)]
Add 'not' to commands that are expected to fail.

llvm-svn: 185654

11 years agoRequire a shell for this test.
Rafael Espindola [Thu, 4 Jul 2013 16:23:44 +0000 (16:23 +0000)]
Require a shell for this test.

Some versions of python will expand the glob used in the test, others wont,
causing the test to fail when run with LIT_USE_INTERNAL_SHELL=1.

llvm-svn: 185653

11 years agoAdd 'not' to commands that are expected to fail.
Rafael Espindola [Thu, 4 Jul 2013 16:16:58 +0000 (16:16 +0000)]
Add 'not' to commands that are expected to fail.

This is at least good documentation, but also opens the possibility of
using pipefail.

llvm-svn: 185652

11 years agoRemove an unneeded call to 'UpdateThumbVFPPredicate', spotted by Amaury.
Joey Gouly [Thu, 4 Jul 2013 15:58:38 +0000 (15:58 +0000)]
Remove an unneeded call to 'UpdateThumbVFPPredicate', spotted by Amaury.

llvm-svn: 185651

11 years agoLooks like {{.*}} doesn't match the empty string. Fix test.
Rafael Espindola [Thu, 4 Jul 2013 15:29:20 +0000 (15:29 +0000)]
Looks like {{.*}} doesn't match the empty string. Fix test.

llvm-svn: 185650

11 years agoRelax pattern to accept a signext on ppc64.
Rafael Espindola [Thu, 4 Jul 2013 15:25:05 +0000 (15:25 +0000)]
Relax pattern to accept a signext on ppc64.

llvm-svn: 185649

11 years agoReplace 'grep foo | count 0' with 'not grep foo'.
Rafael Espindola [Thu, 4 Jul 2013 15:22:16 +0000 (15:22 +0000)]
Replace 'grep foo | count 0' with 'not grep foo'.

This avoids depending on pipefail not being used.

llvm-svn: 185648

11 years agoRemove test for the old debug format which was XFAILed since 2009.
Rafael Espindola [Thu, 4 Jul 2013 15:14:31 +0000 (15:14 +0000)]
Remove test for the old debug format which was XFAILed since 2009.

llvm-svn: 185647

11 years agoFix bashism.
Joerg Sonnenberger [Thu, 4 Jul 2013 15:11:10 +0000 (15:11 +0000)]
Fix bashism.

llvm-svn: 185646

11 years agoConvert test to FileCheck.
Rafael Espindola [Thu, 4 Jul 2013 15:08:20 +0000 (15:08 +0000)]
Convert test to FileCheck.

llvm-svn: 185645

11 years agoAdd missing expected-warning.
Rafael Espindola [Thu, 4 Jul 2013 15:04:25 +0000 (15:04 +0000)]
Add missing expected-warning.

llvm-svn: 185644

11 years agoRemove more unused uses of -verify.
Rafael Espindola [Thu, 4 Jul 2013 14:58:42 +0000 (14:58 +0000)]
Remove more unused uses of -verify.

llvm-svn: 185643

11 years agoAdd support for MC assembling and disassembling of vsel{ge, gt, eq, vs} instructions.
Joey Gouly [Thu, 4 Jul 2013 14:57:20 +0000 (14:57 +0000)]
Add support for MC assembling and disassembling of vsel{ge, gt, eq, vs} instructions.

This adds a new decoder table/namespace 'VFPV8', as these instructions have their
top 4 bits as 0b1111, while other Thumb instructions have 0b1110.

llvm-svn: 185642

11 years agoRemove unused -verify.
Rafael Espindola [Thu, 4 Jul 2013 14:51:11 +0000 (14:51 +0000)]
Remove unused -verify.

llvm-svn: 185641

11 years agoFixed typo: NoneComment -> NonComment, no other changes.
Alexander Kornienko [Thu, 4 Jul 2013 14:47:51 +0000 (14:47 +0000)]
Fixed typo: NoneComment -> NonComment, no other changes.

llvm-svn: 185640

11 years agoclang -cc1 has no -fno-unit-at-a-time or -funit-at-a-time. Fix test.
Rafael Espindola [Thu, 4 Jul 2013 14:42:44 +0000 (14:42 +0000)]
clang -cc1 has no -fno-unit-at-a-time or -funit-at-a-time. Fix test.

llvm-svn: 185639

11 years ago[PowerPC] Add all trap mnemonics
Ulrich Weigand [Thu, 4 Jul 2013 14:40:12 +0000 (14:40 +0000)]
[PowerPC] Add all trap mnemonics

This adds support for all basic and extended variants
of the trap instructions to the asm parser.

llvm-svn: 185638

11 years agoUse a clang -cc1 option instead of -m32 and remove tcl quotes.
Rafael Espindola [Thu, 4 Jul 2013 14:36:22 +0000 (14:36 +0000)]
Use a clang -cc1 option instead of -m32 and remove tcl quotes.

llvm-svn: 185637

11 years agoRemove tcl quotes.
Rafael Espindola [Thu, 4 Jul 2013 14:30:41 +0000 (14:30 +0000)]
Remove tcl quotes.

llvm-svn: 185636

11 years agoConvert test to FileCheck.
Rafael Espindola [Thu, 4 Jul 2013 14:28:33 +0000 (14:28 +0000)]
Convert test to FileCheck.

llvm-svn: 185635

11 years agoReplace void with int to make this a valid C++ file.
Rafael Espindola [Thu, 4 Jul 2013 14:25:25 +0000 (14:25 +0000)]
Replace void with int to make this a valid C++ file.

The test was passing because clang would still print the ast before exiting
with an error. Since that didn't seem to be the intent of the test, I change
the test instead of adding 'not' to the command line.

llvm-svn: 185634

11 years ago[PowerPC] Add asm parser support for CR expressions
Ulrich Weigand [Thu, 4 Jul 2013 14:24:00 +0000 (14:24 +0000)]
[PowerPC] Add asm parser support for CR expressions

This adds support for specifying condition registers and
condition register fields via expressions using the symbols
defined by the PowerISA, like "4*cr2+eq".

llvm-svn: 185633

11 years agoSimplifyCFG: Teach switch generation some patterns that instcombine forms.
Benjamin Kramer [Thu, 4 Jul 2013 14:22:02 +0000 (14:22 +0000)]
SimplifyCFG: Teach switch generation some patterns that instcombine forms.

This allows us to create switches even if instcombine has munged two of the
incombing compares into one and some bit twiddling. This was motivated by enum
compares that are common in clang.

llvm-svn: 185632

11 years ago[ASan] Close stderr before launching atos in asan_symbolize.py
Alexander Potapenko [Thu, 4 Jul 2013 14:21:49 +0000 (14:21 +0000)]
[ASan] Close stderr before launching atos in asan_symbolize.py

llvm-svn: 185631

11 years agoRemove old test.
Rafael Espindola [Thu, 4 Jul 2013 14:20:52 +0000 (14:20 +0000)]
Remove old test.

It was trivially passing because of the tcl quotes and we have better datalayout
tests.

llvm-svn: 185630

11 years agoRemove old test.
Rafael Espindola [Thu, 4 Jul 2013 14:18:32 +0000 (14:18 +0000)]
Remove old test.

It was not clear what was being tested and the test was trivially passing
by getting grep confused with tcl quotes.

llvm-svn: 185629

11 years agoClang has no nested function support. Delete this test.
Rafael Espindola [Thu, 4 Jul 2013 14:13:53 +0000 (14:13 +0000)]
Clang has no nested function support. Delete this test.

llvm-svn: 185628

11 years agoSupporting ssize_t on WIN64 with its proper size. Patch thanks to David Cournapeau!
Aaron Ballman [Thu, 4 Jul 2013 14:12:25 +0000 (14:12 +0000)]
Supporting ssize_t on WIN64 with its proper size.  Patch thanks to David Cournapeau!

llvm-svn: 185627

11 years ago[sanitizer] Intercept tcgetattr.
Evgeniy Stepanov [Thu, 4 Jul 2013 14:03:31 +0000 (14:03 +0000)]
[sanitizer] Intercept tcgetattr.

llvm-svn: 185626

11 years agoRemove the EXCEPTIONADDR, EHSELECTION, and LSDAADDR ISD opcodes.
Jakob Stoklund Olesen [Thu, 4 Jul 2013 13:54:20 +0000 (13:54 +0000)]
Remove the EXCEPTIONADDR, EHSELECTION, and LSDAADDR ISD opcodes.

These exception-related opcodes are not used any longer.

llvm-svn: 185625

11 years ago[sanitizer] More interceptors.
Evgeniy Stepanov [Thu, 4 Jul 2013 13:19:41 +0000 (13:19 +0000)]
[sanitizer] More interceptors.

bcopy
strtoimax, strtoumax
mbstowcs, mbsrtowcs, mbsnrtowcs
wcstombs, wcsrtombs, wcsnrtombs

llvm-svn: 185624

11 years agoUse SmallVectorImpl::const_iterator instead of SmallVector to avoid specifying the...
Craig Topper [Thu, 4 Jul 2013 13:11:33 +0000 (13:11 +0000)]
Use SmallVectorImpl::const_iterator instead of SmallVector to avoid specifying the vector size.

llvm-svn: 185623

11 years agoAdded AlwaysBreakBeforeMultilineStrings option.
Alexander Kornienko [Thu, 4 Jul 2013 12:02:44 +0000 (12:02 +0000)]
Added AlwaysBreakBeforeMultilineStrings option.

Summary:
Always breaking before multiline strings can help format complex
expressions containing multiline strings more consistently, and avoid consuming
too much horizontal space.

Reviewers: djasper

Reviewed By: djasper

CC: cfe-commits, klimek
Differential Revision: http://llvm-reviews.chandlerc.com/D1097

llvm-svn: 185622

11 years ago[ASan] Do not protect the malloc zone created by malloc_zone_create() on Snow Leopard...
Alexander Potapenko [Thu, 4 Jul 2013 10:16:12 +0000 (10:16 +0000)]
[ASan] Do not protect the malloc zone created by malloc_zone_create() on Snow Leopard and earlier systems.
Fixes https://code.google.com/p/address-sanitizer/issues/detail?id=208

llvm-svn: 185621

11 years agoAdd a V8FP instruction 'vcvt{b,t}' to convert between half and double precision.
Joey Gouly [Thu, 4 Jul 2013 10:04:08 +0000 (10:04 +0000)]
Add a V8FP instruction 'vcvt{b,t}' to convert between half and double precision.

llvm-svn: 185620

11 years agoTry to guard a test that requires DEBUG().
Rui Ueyama [Thu, 4 Jul 2013 09:29:47 +0000 (09:29 +0000)]
Try to guard a test that requires DEBUG().

This is a follow-up patch for r185524. Being assert enabled does not mean
that DEBUG() is enabled, so we need to check the existence of DEBUG() itself.

llvm-svn: 185619

11 years agoTypo.
Jakob Stoklund Olesen [Thu, 4 Jul 2013 04:53:49 +0000 (04:53 +0000)]
Typo.

llvm-svn: 185618

11 years agoSimplify landing pad lowering.
Jakob Stoklund Olesen [Thu, 4 Jul 2013 04:53:45 +0000 (04:53 +0000)]
Simplify landing pad lowering.

Stop using the ISD::EXCEPTIONADDR and ISD::EHSELECTION when lowering
landing pad arguments. These nodes were previously legalized into
CopyFromReg nodes, but that never worked properly because the
CopyFromReg node weren't guaranteed to be  scheduled at the top of the
basic block.

This meant the exception pointer and selector registers could be
clobbered before being copied to a virtual register.

This patch copies the two physical registers to virtual registers at
the beginning of the basic block, and lowers the landingpad instruction
directly to two CopyFromReg nodes reading the *virtual* registers. This
is safe because virtual registers don't get clobbered.

A future patch will remove the ISD::EXCEPTIONADDR and ISD::EHSELECTION
nodes.

llvm-svn: 185617

11 years agoFastISel can only apend to basic blocks.
Jakob Stoklund Olesen [Thu, 4 Jul 2013 04:32:39 +0000 (04:32 +0000)]
FastISel can only apend to basic blocks.

Compute the insertion point from the end of the basic block instead of
skipping labels from the front.

This caused failures in landing pads when live-in copies where inserted
before instruction selection.

llvm-svn: 185616

11 years agoLive-in copies go *after* EH_LABELs.
Jakob Stoklund Olesen [Thu, 4 Jul 2013 04:32:35 +0000 (04:32 +0000)]
Live-in copies go *after* EH_LABELs.

This will soon be tested by exception handling working at all.

llvm-svn: 185615

11 years agoAdd test for PR4997. This has been fixed for a while.
Richard Smith [Thu, 4 Jul 2013 04:10:46 +0000 (04:10 +0000)]
Add test for PR4997. This has been fixed for a while.

llvm-svn: 185614

11 years agoTestcase for PR14130, which was probably fixed by r183859.
Richard Smith [Thu, 4 Jul 2013 04:04:20 +0000 (04:04 +0000)]
Testcase for PR14130, which was probably fixed by r183859.

llvm-svn: 185613

11 years agoTabs to spaces. No functionality change.
Nick Lewycky [Thu, 4 Jul 2013 03:51:53 +0000 (03:51 +0000)]
Tabs to spaces. No functionality change.

llvm-svn: 185612

11 years agoAdd a space between closing template '>' to unbreak build.
Craig Topper [Thu, 4 Jul 2013 03:15:42 +0000 (03:15 +0000)]
Add a space between closing template '>' to unbreak build.

llvm-svn: 185611

11 years agoUse SmallVectorImpl instead of SmallVector for iterators and references to avoid...
Craig Topper [Thu, 4 Jul 2013 03:08:24 +0000 (03:08 +0000)]
Use SmallVectorImpl instead of SmallVector for iterators and references to avoid specifying the vector size unnecessarily.

llvm-svn: 185610

11 years ago[analyzer] Suppress reports reported in std::list
Anna Zaks [Thu, 4 Jul 2013 02:38:10 +0000 (02:38 +0000)]
[analyzer] Suppress reports reported in std::list

The motivation is to suppresses false use-after-free reports that occur when calling
std::list::pop_front() or std::list::pop_back() twice. The analyzer does not
reason about the internal invariants of the list implementation, so just do not report
any of warnings in std::list.

Fixes radar://14317928.

llvm-svn: 185609

11 years ago[analyzer] Make sure that inlined defensive checks work on div by zero.
Anna Zaks [Thu, 4 Jul 2013 02:38:06 +0000 (02:38 +0000)]
[analyzer] Make sure that inlined defensive checks work on div by zero.

This suppresses a false positive in std::hash_map.
Fixes  radar://14255587.

llvm-svn: 185608

11 years agoAdd a space between closing template '>' to unbreak build.
Craig Topper [Thu, 4 Jul 2013 01:43:17 +0000 (01:43 +0000)]
Add a space between closing template '>' to unbreak build.

llvm-svn: 185607

11 years agoUse SmallVectorImpl::iterator/const_iterator instead of SmallVector to avoid specifyi...
Craig Topper [Thu, 4 Jul 2013 01:31:24 +0000 (01:31 +0000)]
Use SmallVectorImpl::iterator/const_iterator instead of SmallVector to avoid specifying the vector size.

llvm-svn: 185606

11 years agoReapply r185601 with a fix for the cmake build.
Eric Christopher [Thu, 4 Jul 2013 01:10:38 +0000 (01:10 +0000)]
Reapply r185601 with a fix for the cmake build.

llvm-svn: 185605

11 years agoPart of PR15673: If a function template has a default argument in which
Richard Smith [Thu, 4 Jul 2013 01:01:24 +0000 (01:01 +0000)]
Part of PR15673: If a function template has a default argument in which
substitution failed, report that as a substitution failure rather than
pretending that there was no default argument.

The test cases in PR15673 have exposed some pre-existing poor diagnostics here.

llvm-svn: 185604

11 years agoTemporarily revert 185601 as it caused cmake build regressions.
Eric Christopher [Thu, 4 Jul 2013 00:51:26 +0000 (00:51 +0000)]
Temporarily revert 185601 as it caused cmake build regressions.

llvm-svn: 185603

11 years agoImprove -Wlogical-not-parentheses to catch when the not is applied to an enum.
Richard Trieu [Thu, 4 Jul 2013 00:50:18 +0000 (00:50 +0000)]
Improve -Wlogical-not-parentheses to catch when the not is applied to an enum.

llvm-svn: 185602

11 years agoAdd support for futimens for platforms that don't support futimes.
Eric Christopher [Thu, 4 Jul 2013 00:47:09 +0000 (00:47 +0000)]
Add support for futimens for platforms that don't support futimes.

Patch by pashev.igor.

llvm-svn: 185601

11 years agoRevert r185595-185596 which broke buildbots.
Jakob Stoklund Olesen [Thu, 4 Jul 2013 00:26:30 +0000 (00:26 +0000)]
Revert r185595-185596 which broke buildbots.

Revert "Simplify landing pad lowering."
Revert "Remove the EXCEPTIONADDR, EHSELECTION, and LSDAADDR ISD opcodes."

llvm-svn: 185600

11 years ago[ObjectiveC migrator] relax the rules for setter/getter
Fariborz Jahanian [Thu, 4 Jul 2013 00:24:32 +0000 (00:24 +0000)]
[ObjectiveC migrator] relax the rules for setter/getter
types when deciding on validity of a property
inclusion. // rdar://14345082

llvm-svn: 185599

11 years agoPR16480: Reimplement token-caching for constructor initializer lists. This
Richard Smith [Thu, 4 Jul 2013 00:13:48 +0000 (00:13 +0000)]
PR16480: Reimplement token-caching for constructor initializer lists. This
previously didn't work if a mem-initializer-id had a template argument which
contained parentheses or braces.

We now implement a simple rule: just look for a ') {' or '} {' that is not
nested. The '{' is assumed to start the function-body. There are still two
cases which we misparse, where the ') {' comes from a compound literal or
from a lambda. The former case is not valid C++, and the latter will probably
not be valid C++ once DR1607 is resolved, so these seem to be of low value,
and we do not regress on them with this change. EDG and g++ also misparse
both of these cases.

llvm-svn: 185598

11 years agoPatch for N3655 (Transformation type traits) with Howard's additions
Marshall Clow [Thu, 4 Jul 2013 00:10:01 +0000 (00:10 +0000)]
Patch for N3655 (Transformation type traits) with Howard's additions

llvm-svn: 185597

11 years agoRemove the EXCEPTIONADDR, EHSELECTION, and LSDAADDR ISD opcodes.
Jakob Stoklund Olesen [Wed, 3 Jul 2013 23:56:31 +0000 (23:56 +0000)]
Remove the EXCEPTIONADDR, EHSELECTION, and LSDAADDR ISD opcodes.

These exception-related opcodes are not used any longer.

llvm-svn: 185596

11 years agoSimplify landing pad lowering.
Jakob Stoklund Olesen [Wed, 3 Jul 2013 23:56:24 +0000 (23:56 +0000)]
Simplify landing pad lowering.

Stop using the ISD::EXCEPTIONADDR and ISD::EHSELECTION when lowering
landing pad arguments. These nodes were previously legalized into
CopyFromReg nodes, but that never worked properly because the
CopyFromReg node weren't guaranteed to be  scheduled at the top of the
basic block.

This meant the exception pointer and selector registers could be
clobbered before being copied to a virtual register.

This patch copies the two physical registers to virtual registers at
the beginning of the basic block, and lowers the landingpad instruction
directly to two CopyFromReg nodes reading the *virtual* registers. This
is safe because virtual registers don't get clobbered.

A future patch will remove the ISD::EXCEPTIONADDR and ISD::EHSELECTION
nodes.

llvm-svn: 185595

11 years agoAdd MachineBasicBlock::addLiveIn().
Jakob Stoklund Olesen [Wed, 3 Jul 2013 23:56:20 +0000 (23:56 +0000)]
Add MachineBasicBlock::addLiveIn().

This function adds a live-in physical register to an MBB and ensures
that it is copied to a virtual register immediately.

llvm-svn: 185594

11 years agoMinor refactoring of my last patch.
Fariborz Jahanian [Wed, 3 Jul 2013 23:44:11 +0000 (23:44 +0000)]
Minor refactoring of my last patch.

llvm-svn: 185593

11 years agoHave ARMBaseRegisterInfo::getCallPreservedMask return the 'correct' mask for the...
Stephen Lin [Wed, 3 Jul 2013 23:39:13 +0000 (23:39 +0000)]
Have ARMBaseRegisterInfo::getCallPreservedMask return the 'correct' mask for the GHC calling convention.

This is purely academic because GHC calls are always tail calls so the register mask will never be used; however, this change makes the code clearer and brings the ARM implementation of the GHC calling convention in line with the X86 implementation. Also, it might save someone else some time trying to figuring out what is happening...

llvm-svn: 185592

11 years ago[ObjectiveC Migration]: Provide knobs for
Fariborz Jahanian [Wed, 3 Jul 2013 23:05:00 +0000 (23:05 +0000)]
[ObjectiveC Migration]: Provide knobs for
migrating setter/getter methods to an eventual
property declaraiton. This is wip.
// rdar://14345082

llvm-svn: 185591

11 years agoscop detection: early return
Sebastian Pop [Wed, 3 Jul 2013 22:50:36 +0000 (22:50 +0000)]
scop detection: early return

to reduce indentation level
No functionality changed.

llvm-svn: 185590

11 years agoHoist all of the Entry.getLoc() calls int a single variable.
Eric Christopher [Wed, 3 Jul 2013 22:40:21 +0000 (22:40 +0000)]
Hoist all of the Entry.getLoc() calls int a single variable.

llvm-svn: 185589

11 years agoMake DotDebugLocEntry a class, reorder the members along with comments
Eric Christopher [Wed, 3 Jul 2013 22:40:18 +0000 (22:40 +0000)]
Make DotDebugLocEntry a class, reorder the members along with comments
for them and update all uses.

llvm-svn: 185588

11 years ago[ARM] Improve the instruction selection of vector loads.
Quentin Colombet [Wed, 3 Jul 2013 21:42:57 +0000 (21:42 +0000)]
[ARM] Improve the instruction selection of vector loads.

In the ARM back-end, build_vector nodes are lowered to a target specific
build_vector that uses floating point type.
This works well, unless the inserted bitcasts survive until instruction
selection. In that case, they incur moves between integer unit and floating
point unit that may result in inefficient code.

In other words, this conversion may introduce artificial dependencies when the
code leading to the build vector cannot be completed with a floating point type.

In particular, this happens when loads are not aligned.

Before this patch, in that case, the compiler generates general purpose loads
and creates the floating point vector from them, instead of directly using the
vector unit.

The patch uses a vector friendly sequence of code when the inserted bitcasts to
floating point survived DAGCombine.

This is done by a target specific DAGCombine that changes the target specific
build_vector into a sequence of insert_vector_elt that get rid of the bitcasts.

<rdar://problem/14170854>

llvm-svn: 185587

11 years agoElaborate on comment.
Eric Christopher [Wed, 3 Jul 2013 21:37:03 +0000 (21:37 +0000)]
Elaborate on comment.

llvm-svn: 185586

11 years agoAdd names to the header file since they help in documenting the API
Eric Christopher [Wed, 3 Jul 2013 21:23:59 +0000 (21:23 +0000)]
Add names to the header file since they help in documenting the API
(and for consistency).

llvm-svn: 185585

11 years agoCheck LongDoubleFormat instead of just Width as this is PowerPC specific.
Roman Divacky [Wed, 3 Jul 2013 21:08:41 +0000 (21:08 +0000)]
Check LongDoubleFormat instead of just Width as this is PowerPC specific.

llvm-svn: 185584

11 years ago[PowerPC] FreeBSD does not require f128 in its data layout string.
Bill Schmidt [Wed, 3 Jul 2013 21:03:35 +0000 (21:03 +0000)]
[PowerPC] FreeBSD does not require f128 in its data layout string.

Long double is 64 bits on FreeBSD PPC, so the f128 entry is superfluous.

llvm-svn: 185583

11 years ago[PowerPC] FreeBSD does not require f128 in its data layout string.
Bill Schmidt [Wed, 3 Jul 2013 21:03:06 +0000 (21:03 +0000)]
[PowerPC] FreeBSD does not require f128 in its data layout string.

Long double is 64 bits on FreeBSD PPC, so the f128 entry is superfluous.

llvm-svn: 185582

11 years agoAdd platform specific tests doc
Renato Golin [Wed, 3 Jul 2013 20:56:33 +0000 (20:56 +0000)]
Add platform specific tests doc

llvm-svn: 185581

11 years ago"bool" should be a context-sensitive keyword in Altivec mode.
Bill Schmidt [Wed, 3 Jul 2013 20:54:09 +0000 (20:54 +0000)]
"bool" should be a context-sensitive keyword in Altivec mode.

PR16456 reported that Clang implements a hybrid between AltiVec's
"Keyword and Predefine Method" and its "Context Sensitive Keyword
Method," where "bool" is always a keyword, but "vector" and "pixel"
are context-sensitive keywords.  This isn't permitted by the AltiVec
spec.  For consistency with gcc, this patch implements the Context
Sensitive Keyword Method for bool, and stops treating true and false
as keywords in Altivec mode.

The patch removes KEYALTIVEC as a trigger for defining these keywords
in include/clang/Basic/TokenKinds.def, and adds logic for "vector
bool" that mirrors the existing logic for "vector pixel."  The test
case is taken from the bug report.

llvm-svn: 185580

11 years agoRemove @expectedFailureGcc from TestInlineStepping as function prologue bug is not...
Daniel Malea [Wed, 3 Jul 2013 20:51:44 +0000 (20:51 +0000)]
Remove @expectedFailureGcc from TestInlineStepping as function prologue bug is not reproducible anymore.

llvm-svn: 185579

11 years agoAdd support for TF/TC modes available on eg. PowerPC64.
Roman Divacky [Wed, 3 Jul 2013 20:48:06 +0000 (20:48 +0000)]
Add support for TF/TC modes available on eg. PowerPC64.

llvm-svn: 185578

11 years agoUpdate testing cases to check dwarf-2 for Darwin.
Manman Ren [Wed, 3 Jul 2013 20:45:07 +0000 (20:45 +0000)]
Update testing cases to check dwarf-2 for Darwin.

llvm-svn: 185577

11 years agoSkip Test-rdar-9974002 with Clang 3.4 (due to llvm.org/pr16214)
Daniel Malea [Wed, 3 Jul 2013 20:44:40 +0000 (20:44 +0000)]
Skip Test-rdar-9974002 with Clang 3.4 (due to llvm.org/pr16214)
- should resolve remaining failures on clang buildbot

llvm-svn: 185576

11 years agoARM: Prevent ARMAsmParser::shouldOmitCCOutOperand() from misidentifying certain Thumb...
Tilmann Scheller [Wed, 3 Jul 2013 20:38:01 +0000 (20:38 +0000)]
ARM: Prevent ARMAsmParser::shouldOmitCCOutOperand() from misidentifying certain Thumb2 add immediate T3 encodings.

Before the fix Thumb2 instructions of type "add rD, rN, #imm" (T3 encoding, see ARM ARM A8.8.4) with rD and rN both being low registers (r0-r7) were classified as having the T4 encoding.

The T4 encoding doesn't have a cc_out operand so for above instructions the operand gets erroneously removed, corrupting the token stream and leading to parse errors later in the process.

This bug prevented "add r1, r7, #0xcbcbcbcb" from being assembled correctly.

Fixes <rdar://problem/14224440>.

llvm-svn: 185575

11 years agoRevert r185557 as it was a bit (a lot) premature.
Chad Rosier [Wed, 3 Jul 2013 20:37:50 +0000 (20:37 +0000)]
Revert r185557 as it was a bit (a lot) premature.

llvm-svn: 185574

11 years agoMove typedefs inside the class that they belong to.
Eric Christopher [Wed, 3 Jul 2013 20:36:36 +0000 (20:36 +0000)]
Move typedefs inside the class that they belong to.

llvm-svn: 185573