platform/upstream/llvm.git
10 years agoAdds a test for 'target module dump symfile' to the LLDB suite.
Ashok Thirumurthi [Wed, 31 Jul 2013 20:01:04 +0000 (20:01 +0000)]
Adds a test for 'target module dump symfile' to the LLDB suite.

TODO: Improve coverage of SBTypeMember and of 'target module dump'.
llvm-svn: 187519

10 years agoBackwards!
Marshall Clow [Wed, 31 Jul 2013 19:39:37 +0000 (19:39 +0000)]
Backwards!

llvm-svn: 187518

10 years agoImplement n3469 - constexpr for chrono
Marshall Clow [Wed, 31 Jul 2013 19:32:19 +0000 (19:32 +0000)]
Implement n3469 - constexpr for chrono

llvm-svn: 187517

10 years agoR600: Do not mergevector after a vector reg is used
Vincent Lejeune [Wed, 31 Jul 2013 19:32:12 +0000 (19:32 +0000)]
R600: Do not mergevector after a vector reg is used

If we merge vector when a vector is used, it will generate an artificial
antidependency that can prevent 2 tex/vtx instructions to use the same
clause and thus generate extra clauses that reduce performance.

There is no test case as such situation is really hard to predict.

llvm-svn: 187516

10 years agoR600: Avoid more than 4 literals in the same instruction group at scheduling
Vincent Lejeune [Wed, 31 Jul 2013 19:32:07 +0000 (19:32 +0000)]
R600: Avoid more than 4 literals in the same instruction group at scheduling

llvm-svn: 187515

10 years agoR600: Non vector only instruction can be scheduled on trans unit
Vincent Lejeune [Wed, 31 Jul 2013 19:31:56 +0000 (19:31 +0000)]
R600: Non vector only instruction can be scheduled on trans unit

llvm-svn: 187514

10 years agoR600: Don't mix LDS and non-LDS instructions in the same group
Vincent Lejeune [Wed, 31 Jul 2013 19:31:41 +0000 (19:31 +0000)]
R600: Don't mix LDS and non-LDS instructions in the same group

There are a lot of restrictions on instruction groups that contain
LDS instructions, so for now we will be conservative and not packetize
anything else with them.

llvm-svn: 187513

10 years agoR600: Use SchedModel enum for is{Trans,Vector}Only functions
Vincent Lejeune [Wed, 31 Jul 2013 19:31:35 +0000 (19:31 +0000)]
R600: Use SchedModel enum for is{Trans,Vector}Only functions

llvm-svn: 187512

10 years agoTableGen: Enumerate Schedule Model too.
Vincent Lejeune [Wed, 31 Jul 2013 19:31:20 +0000 (19:31 +0000)]
TableGen: Enumerate Schedule Model too.

llvm-svn: 187511

10 years agoR600: Remove predicated_break inst
Vincent Lejeune [Wed, 31 Jul 2013 19:31:14 +0000 (19:31 +0000)]
R600: Remove predicated_break inst

We were using two instructions for similar purpose : break and
predicated break. Only predicated_break was emitted and it was
lowered at R600ControlFlowFinalizer to JUMP;CF_BREAK;POP.
This commit simplify the situation by making AMDILCFGStructurizer
emit IF_PREDICATE;BREAK;ENDIF; instead of predicated_break (which
is now removed).

There is no functionality change.

llvm-svn: 187510

10 years agoObjectiveC arc: minor refactoring in my last patch
Fariborz Jahanian [Wed, 31 Jul 2013 18:39:08 +0000 (18:39 +0000)]
ObjectiveC arc: minor refactoring in my last patch
to avoid future false positives. // rdar://14569171

llvm-svn: 187509

10 years agoObjectiveC arc: Introduce a new initialization kind
Fariborz Jahanian [Wed, 31 Jul 2013 18:21:45 +0000 (18:21 +0000)]
ObjectiveC arc: Introduce a new initialization kind
for parameters passed to CF audited functions
to be used for better diagnostics. Current set but
unused. // rdar://14569171

llvm-svn: 187508

10 years agoMark additional ICC failing tests as expected fail.
Matt Kopec [Wed, 31 Jul 2013 17:56:22 +0000 (17:56 +0000)]
Mark additional ICC failing tests as expected fail.

llvm-svn: 187507

10 years agoReject bitcasts between address spaces with different sizes
Matt Arsenault [Wed, 31 Jul 2013 17:49:08 +0000 (17:49 +0000)]
Reject bitcasts between address spaces with different sizes

llvm-svn: 187506

10 years ago[PECOFF] Add a comment about .bss section.
Rui Ueyama [Wed, 31 Jul 2013 17:45:48 +0000 (17:45 +0000)]
[PECOFF] Add a comment about .bss section.

llvm-svn: 187505

10 years agoImprove the diagnostic experience, including adding recovery, for
Kaelyn Uhrain [Wed, 31 Jul 2013 17:38:24 +0000 (17:38 +0000)]
Improve the diagnostic experience, including adding recovery, for
changing '->' to '.' when there is no operator-> defined for a class.

llvm-svn: 187504

10 years agoObjectiveC arc: Move check for type conversions in arc
Fariborz Jahanian [Wed, 31 Jul 2013 17:12:26 +0000 (17:12 +0000)]
ObjectiveC arc: Move check for type conversions in arc
out of ImpCastExprToType and to the caller site
as appropriate. This is in prep. to do more work for
// rdar://14569171

llvm-svn: 187503

10 years agoFix a comment.
Hans Wennborg [Wed, 31 Jul 2013 16:57:56 +0000 (16:57 +0000)]
Fix a comment.

llvm-svn: 187502

10 years agoUpdate break conditions test to have consistent behaviour on all test suite compilers.
Matt Kopec [Wed, 31 Jul 2013 16:27:27 +0000 (16:27 +0000)]
Update break conditions test to have consistent behaviour on all test suite compilers.
Also update comment in const variables test to reflect ICC status.

llvm-svn: 187501

10 years agoSet an extra debug flag when testing with ICC so that it generates the correct debug...
Matt Kopec [Wed, 31 Jul 2013 16:10:03 +0000 (16:10 +0000)]
Set an extra debug flag when testing with ICC so that it generates the correct debug info for inlined tests.

llvm-svn: 187500

10 years agoUpdated the LLDB rvalue reference test to cross-reference with a bugzilla report,
Ashok Thirumurthi [Wed, 31 Jul 2013 15:58:01 +0000 (15:58 +0000)]
Updated the LLDB rvalue reference test to cross-reference with a bugzilla report,
provide more detail on compiler compatibility, and to illustrate that this is
an issue with expression evaluation.

- Note that clang doesn't emit DW_TAG_const_type, which might be okay if there's
no such thing as a non-const rvalue reference.  How about foo(make_int())?

llvm-svn: 187499

10 years agoDependence: Add DEBUG support.
Tobias Grosser [Wed, 31 Jul 2013 14:35:17 +0000 (14:35 +0000)]
Dependence: Add DEBUG support.

Contributed-by: Star Tan <tanmx_star@yeah.net>
llvm-svn: 187498

10 years ago[SystemZ] Implement isLegalAddressingMode()
Richard Sandiford [Wed, 31 Jul 2013 12:58:26 +0000 (12:58 +0000)]
[SystemZ] Implement isLegalAddressingMode()

The loop optimizers were assuming that scales > 1 were OK.  I think this
is actually a bug in TargetLoweringBase::isLegalAddressingMode(),
since it seems to be trying to reject anything that isn't r+i or r+r,
but it has no default case for scales other than 0, 1 or 2.  Implementing
the hook for z means that z can no longer test any change there though.

llvm-svn: 187497

10 years ago[SystemZ] Be more careful about inverting CC masks (conditional loads)
Richard Sandiford [Wed, 31 Jul 2013 12:38:08 +0000 (12:38 +0000)]
[SystemZ] Be more careful about inverting CC masks (conditional loads)

Extend r187495 to conditional loads.  I split this out because the
easiest way seemed to be to force a particular operand order in
SystemZISelDAGToDAG.cpp.

llvm-svn: 187496

10 years ago[SystemZ] Be more careful about inverting CC masks
Richard Sandiford [Wed, 31 Jul 2013 12:30:20 +0000 (12:30 +0000)]
[SystemZ] Be more careful about inverting CC masks

System z branches have a mask to select which of the 4 CC values should
cause the branch to be taken.  We can invert a branch by inverting the mask.
However, not all instructions can produce all 4 CC values, so inverting
the branch like this can lead to some oddities.  For example, integer
comparisons only produce a CC of 0 (equal), 1 (less) or 2 (greater).
If an integer EQ is reversed to NE before instruction selection,
the branch will test for 1 or 2.  If instead the branch is reversed
after instruction selection (by inverting the mask), it will test for
1, 2 or 3.  Both are correct, but the second isn't really canonical.
This patch therefore keeps track of which CC values are possible
and uses this when inverting a mask.

Although this is mostly cosmestic, it fixes undefined behavior
for the CIJNLH in branch-08.ll.  Another fix would have been
to mask out bit 0 when generating the fused compare and branch,
but the point of this patch is that we shouldn't need to do that
in the first place.

The patch also makes it easier to reuse CC results from other instructions.

llvm-svn: 187495

10 years ago[SystemZ] Move compare-and-branch generation even later
Richard Sandiford [Wed, 31 Jul 2013 12:11:07 +0000 (12:11 +0000)]
[SystemZ] Move compare-and-branch generation even later

r187116 moved compare-and-branch generation from the instruction-selection
pass to the peephole optimizer (via optimizeCompare).  It turns out that even
this is a bit too early.  Fused compare-and-branch instructions don't
interact well with predication, where a CC result is needed.  They also
make it harder to reuse the CC side-effects of earlier instructions
(not yet implemented, but the subject of a later patch).

Another problem was that the AnalyzeBranch family of routines weren't
handling compares and branches, so we weren't able to reverse the fused
form in cases where we would reverse a separate branch.  This could have
been fixed by extending AnalyzeBranch, but given the other problems,
I've instead moved the fusing to the long-branch pass, which is also
responsible for the opposite transformation: splitting out-of-range
compares and branches into separate compares and long branches.

I've added a test for the AnalyzeBranch problem.  A test for the
predication problem is included in the next patch, which fixes a bug
in the choice of CC mask.

llvm-svn: 187494

10 years agoFixed assertion in Extract128BitVector()
Elena Demikhovsky [Wed, 31 Jul 2013 12:03:08 +0000 (12:03 +0000)]
Fixed assertion in Extract128BitVector()

llvm-svn: 187493

10 years ago[SystemZ] Postpone NI->RISBG conversion to convertToThreeAddress()
Richard Sandiford [Wed, 31 Jul 2013 11:36:35 +0000 (11:36 +0000)]
[SystemZ] Postpone NI->RISBG conversion to convertToThreeAddress()

r186399 aggressively used the RISBG instruction for immediate ANDs,
both because it can handle some values that AND IMMEDIATE can't,
and because it allows the destination register to be different from
the source.  I realized later while implementing the distinct-ops
support that it would be better to leave the choice up to
convertToThreeAddress() instead.  The AND IMMEDIATE form is shorter
and is less likely to be cracked.

This is a problem for 32-bit ANDs because we assume that all 32-bit
operations will leave the high word untouched, whereas RISBG used in
this way will either clear the high word or copy it from the source
register.  The patch uses the z196 instruction RISBLG for this instead.

This means that z10 will be restricted to NILL, NILH and NILF for
32-bit ANDs, but I think that should be OK for now.  Although we're
using z10 as the base architecture, the optimization work is going
to be focused more on z196 and zEC12.

llvm-svn: 187492

10 years agoAdded INSERT and EXTRACT intructions from AVX-512 ISA.
Elena Demikhovsky [Wed, 31 Jul 2013 11:35:14 +0000 (11:35 +0000)]
Added INSERT and EXTRACT intructions from AVX-512 ISA.
All insertf*/extractf* functions replaced with insert/extract since we have insertf and inserti forms.
Added lowering for INSERT_VECTOR_ELT / EXTRACT_VECTOR_ELT for 512-bit vectors.
Added lowering for EXTRACT/INSERT subvector for 512-bit vectors.
Added a test.

llvm-svn: 187491

10 years ago[SystemZ] Add RISBLG and RISBHG instruction definitions
Richard Sandiford [Wed, 31 Jul 2013 11:17:35 +0000 (11:17 +0000)]
[SystemZ] Add RISBLG and RISBHG instruction definitions

The next patch will make use of RISBLG for codegen.

llvm-svn: 187490

10 years agoWith help from chapuni on IRC, I think this is right now. =] The issue
Chandler Carruth [Wed, 31 Jul 2013 11:14:13 +0000 (11:14 +0000)]
With help from chapuni on IRC, I think this is right now. =] The issue
is that the command is quoted differently from the arguments. The
command has '\' and the argument has '\\'. This is made unclear because
FileCheck escapes the single matched '\' when it prints the contents of
the variable, thus fooling me into thinking it had matched '\\' as
intended. The solution is to bind the gcc_install variable in the
argument list rather than out of the command. To do so we also have to
be a bit more careful so that we don't get stray other things into the
'.*' regex.

Also, because of the argument difference, '\\\\' is the correct
formulation before crtbegin, go back to that.

llvm-svn: 187489

10 years agoRun an experiment to try to understand the windows failure better by
Chandler Carruth [Wed, 31 Jul 2013 10:54:11 +0000 (10:54 +0000)]
Run an experiment to try to understand the windows failure better by
replacing one variable with the regex. This won't fix anything, but will
hopefully shed light on the nature of the failure.

llvm-svn: 187488

10 years agoTry only two slashes as that seems to be working elsewhere in this
Chandler Carruth [Wed, 31 Jul 2013 10:34:48 +0000 (10:34 +0000)]
Try only two slashes as that seems to be working elsewhere in this
testcase.

llvm-svn: 187487

10 years agoRe-enable the cross-linux test on windows after making it tolerant of
Chandler Carruth [Wed, 31 Jul 2013 10:02:58 +0000 (10:02 +0000)]
Re-enable the cross-linux test on windows after making it tolerant of
the path separator used when locating crtbegin.o.

I'll watch the bots to see if there are other issues lurking here.

llvm-svn: 187486

10 years ago[msan] Fix msan tests with pipefail option.
Evgeniy Stepanov [Wed, 31 Jul 2013 09:14:55 +0000 (09:14 +0000)]
[msan] Fix msan tests with pipefail option.

llvm-svn: 187485

10 years ago[PECOFF] Add a comment on the idata section fragments.
Rui Ueyama [Wed, 31 Jul 2013 05:10:20 +0000 (05:10 +0000)]
[PECOFF] Add a comment on the idata section fragments.

llvm-svn: 187484

10 years agoclang/test/Driver/cross-linux.c is suppressed on win32 for now. Investigating.
NAKAMURA Takumi [Wed, 31 Jul 2013 04:56:19 +0000 (04:56 +0000)]
clang/test/Driver/cross-linux.c is suppressed on win32 for now. Investigating.

llvm-svn: 187483

10 years agoAdd parentheses to silence gcc warning.
Richard Trieu [Wed, 31 Jul 2013 04:07:28 +0000 (04:07 +0000)]
Add parentheses to silence gcc warning.

llvm-svn: 187482

10 years agoFixed path differences when using include/exclude headers
Ariel J. Bernal [Wed, 31 Jul 2013 04:00:28 +0000 (04:00 +0000)]
Fixed path differences when using include/exclude headers

Added function for removing relative operators from input paths.

llvm-svn: 187481

10 years agoReverts r187449 (report_fatal_error) in favor of a log message since
Ashok Thirumurthi [Wed, 31 Jul 2013 03:56:45 +0000 (03:56 +0000)]
Reverts r187449 (report_fatal_error) in favor of a log message since
the extra check introduces 22 new test failures with the LLDB clang buildbot.

Note that the unhandled DWARF_OP codes in DWARFExpression::Evaluate don't cause test failures if the check is ignored.

llvm-svn: 187480

10 years agoFix register pressure tables on ARM.
Andrew Trick [Wed, 31 Jul 2013 03:24:31 +0000 (03:24 +0000)]
Fix register pressure tables on ARM.

The heuristic that merges register pressure sets was bogus for ARM's S/D regs.

llvm-svn: 187479

10 years agoAdd tracing to the tblgen register pressure table generator.
Andrew Trick [Wed, 31 Jul 2013 03:24:28 +0000 (03:24 +0000)]
Add tracing to the tblgen register pressure table generator.

llvm-svn: 187478

10 years agoIncrement arg_count inside the loop in printInline. Patch by Joe Matarazzo.
Craig Topper [Wed, 31 Jul 2013 03:22:07 +0000 (03:22 +0000)]
Increment arg_count inside the loop in printInline. Patch by Joe Matarazzo.

llvm-svn: 187477

10 years agoChanged register names (and pointer keywords) to be lower case when using Intel X86...
Craig Topper [Wed, 31 Jul 2013 02:47:52 +0000 (02:47 +0000)]
Changed register names (and pointer keywords) to be lower case when using Intel X86 assembler syntax.

Patch by Richard Mitton.

llvm-svn: 187476

10 years agoFix a severe compile time problem when forming large SCEV expressions.
Andrew Trick [Wed, 31 Jul 2013 02:43:40 +0000 (02:43 +0000)]
Fix a severe compile time problem when forming large SCEV expressions.

This fix is very lightweight. The same fix already existed for AddRec
but was missing for NAry expressions.

This is obviously an improvement and I'm unsure how to test compile
time problems.

Patch by Xiaoyi Guo!

llvm-svn: 187475

10 years agoFixing an unused variable warning.
Aaron Ballman [Wed, 31 Jul 2013 02:20:22 +0000 (02:20 +0000)]
Fixing an unused variable warning.

llvm-svn: 187474

10 years agoThe DisassemblerLLVMC has a retain cycle - the InstructionLLVMC's contained in its...
Jim Ingham [Wed, 31 Jul 2013 02:19:15 +0000 (02:19 +0000)]
The DisassemblerLLVMC has a retain cycle - the InstructionLLVMC's contained in its instruction
list have a shared pointer back to their DisassemblerLLVMC.  This checkin force clears the InstructionList
in all the places we use the DisassemblerSP to stop the leaking for now.  I'll go back and fix this
for real when I have time to do so.

<rdar://problem/14581918>

llvm-svn: 187473

10 years agoRemove trailing whitespace and some tab characters.
Craig Topper [Wed, 31 Jul 2013 02:00:15 +0000 (02:00 +0000)]
Remove trailing whitespace and some tab characters.

llvm-svn: 187472

10 years agoFixed incorrect disassembly for MOV16o16a when using Intel syntax.
Craig Topper [Wed, 31 Jul 2013 01:50:26 +0000 (01:50 +0000)]
Fixed incorrect disassembly for MOV16o16a when using Intel syntax.

Patch by Richard Mitton.

llvm-svn: 187471

10 years agoFix crashing on invalid inline asm with matching constraints.
Eric Christopher [Wed, 31 Jul 2013 01:26:24 +0000 (01:26 +0000)]
Fix crashing on invalid inline asm with matching constraints.

For a testcase like the following:

 typedef unsigned long uint64_t;

 typedef struct {
   uint64_t lo;
   uint64_t hi;
 } blob128_t;

 void add_128_to_128(const blob128_t *in, blob128_t *res) {
   asm ("PAND %1, %0" : "+Q"(*res) : "Q"(*in));
 }

where we'll fail to allocate the register for the output constraint,
our matching input constraint will not find a register to match,
and could try to search past the end of the current operands array.

On the idea that we'd like to attempt to keep compilation going
to find more errors in the module, change the error cases when
we're visiting inline asm IR to return immediately and avoid
trying to create a node in the DAG. This leaves us with only
a single error message per inline asm instruction, but allows us
to safely keep going in the general case.

llvm-svn: 187470

10 years ago[mips] Rename instruction DANDi to ANDi64.
Akira Hatanaka [Wed, 31 Jul 2013 00:57:41 +0000 (00:57 +0000)]
[mips] Rename instruction DANDi to ANDi64.

No functionality change.

llvm-svn: 187469

10 years ago[mips] Define instruction itineraries IIArith and IILogic.
Akira Hatanaka [Wed, 31 Jul 2013 00:55:34 +0000 (00:55 +0000)]
[mips] Define instruction itineraries IIArith and IILogic.

No functionality change.

llvm-svn: 187468

10 years agoFix a crasher than manifests when typo correction suggests a function template.
Richard Trieu [Wed, 31 Jul 2013 00:48:10 +0000 (00:48 +0000)]
Fix a crasher than manifests when typo correction suggests a function template.

llvm-svn: 187467

10 years agoFind a better compromise with the default library search paths used by
Chandler Carruth [Wed, 31 Jul 2013 00:37:07 +0000 (00:37 +0000)]
Find a better compromise with the default library search paths used by
Clang when linking and using a GCC installation from a GCC
cross-compiler.

This was desired already by two special case platforms (Android and
Mips), and turns out to be generally (if frustratingly) true. I've added
a substantial comment to the code clarifying the underlying assumptions
of doing actual cross compiles with Clang (or GCC for that matter!) and
help avoid further confusion here.

The end result is to realize that fully general form of PR12478 cannot
be resolved while we support existing cross-compiling GCC toolchains,
and linking with them (namely, linking against their libgcc and
libstdc++ installs). GCC installs these target libraries under
a target-specific prefix but one that may not be available within the
actual sysroot in use. When linking in this world, GCC works and Clang
should as well, but caveat emptor: DSOs from this tree must be
replicated and rpath-fixed to be found at runtime within the sysroot.

I've extended the cross compile test cases to cover these issues by
pointing them at a sysroot and actually checking the library search
paths.

llvm-svn: 187466

10 years agoFix read of uninitialized enum value in test, caught by UBSan. No functionality
Richard Smith [Wed, 31 Jul 2013 00:26:46 +0000 (00:26 +0000)]
Fix read of uninitialized enum value in test, caught by UBSan. No functionality
change, other than removal of undefined behavior.

llvm-svn: 187465

10 years agoFix ptr vector inconsistency in CreatePointerCast
Matt Arsenault [Wed, 31 Jul 2013 00:17:33 +0000 (00:17 +0000)]
Fix ptr vector inconsistency in CreatePointerCast

One form would accept a vector of pointers, and the other did not.
Make both accept vectors of pointers, and add an assertion
for the number of elements.

llvm-svn: 187464

10 years agoFix windows' implementation of status when a file doesn't exist.
Rafael Espindola [Wed, 31 Jul 2013 00:10:25 +0000 (00:10 +0000)]
Fix windows' implementation of status when a file doesn't exist.

The unix one was returning no_such_file_or_directory, but the windows one
was return success.

Update the one one caller that was depending on the old behavior.

llvm-svn: 187463

10 years agoPreserve fast-math flags when folding (fsub x, (fneg y)) to (fadd x, y).
Owen Anderson [Tue, 30 Jul 2013 23:53:17 +0000 (23:53 +0000)]
Preserve fast-math flags when folding (fsub x, (fneg y)) to (fadd x, y).

llvm-svn: 187462

10 years agoFix comment.
Rui Ueyama [Tue, 30 Jul 2013 23:20:10 +0000 (23:20 +0000)]
Fix comment.

llvm-svn: 187461

10 years ago[PECOFF] Emit BSS section.
Rui Ueyama [Tue, 30 Jul 2013 22:56:46 +0000 (22:56 +0000)]
[PECOFF] Emit BSS section.

llvm-svn: 187460

10 years agoReflow this to be easier to read.
Eric Christopher [Tue, 30 Jul 2013 22:50:44 +0000 (22:50 +0000)]
Reflow this to be easier to read.

llvm-svn: 187459

10 years agoclang-format: Improve detection of templates.
Daniel Jasper [Tue, 30 Jul 2013 22:37:19 +0000 (22:37 +0000)]
clang-format: Improve detection of templates.

Before:
  template <typename... Types>
        typename enable_if < 0<sizeof...(Types)>::type Foo() {}
After:
  template <typename... Types>
  typename enable_if<0 < sizeof...(Types)>::type Foo() {}

llvm-svn: 187458

10 years agoMake these just inline, not static inline.
Eric Christopher [Tue, 30 Jul 2013 22:35:06 +0000 (22:35 +0000)]
Make these just inline, not static inline.

llvm-svn: 187457

10 years agoMake sure that -gsplit-dwarf isn't passed to the linker.
Eric Christopher [Tue, 30 Jul 2013 22:34:30 +0000 (22:34 +0000)]
Make sure that -gsplit-dwarf isn't passed to the linker.

llvm-svn: 187456

10 years agoRespect address space sizes in isEliminableCastPair.
Matt Arsenault [Tue, 30 Jul 2013 22:27:10 +0000 (22:27 +0000)]
Respect address space sizes in isEliminableCastPair.

This avoids constant folding bitcast/ptrtoint/inttoptr combinations
that have illegal bitcasts between differently sized address spaces.

llvm-svn: 187455

10 years agoRevert "Remove isCastable since nothing uses it now"
Matt Arsenault [Tue, 30 Jul 2013 22:02:14 +0000 (22:02 +0000)]
Revert "Remove isCastable since nothing uses it now"

Apparently dragonegg uses it.

llvm-svn: 187454

10 years ago[PECOFF] Split COFFDefinedAtom to add COFFBSSAtom class.
Rui Ueyama [Tue, 30 Jul 2013 21:54:10 +0000 (21:54 +0000)]
[PECOFF] Split COFFDefinedAtom to add COFFBSSAtom class.

The BSS atom is similar to the regular defined atom, but it's different
in the sense that it does not have contents. Until now we assumed all the
defined atoms have its contents. That did not fit well to the BSS atom.

llvm-svn: 187453

10 years agoAdd capability for building with -gsplit-dwarf to the cmake build.
Eric Christopher [Tue, 30 Jul 2013 21:44:10 +0000 (21:44 +0000)]
Add capability for building with -gsplit-dwarf to the cmake build.

In limited testing this seems to work. Caveat emptor.

llvm-svn: 187452

10 years agoAssorted test suite fixes as a result of GCC 4.8 validation efforts
Daniel Malea [Tue, 30 Jul 2013 21:34:44 +0000 (21:34 +0000)]
Assorted test suite fixes as a result of GCC 4.8 validation efforts
- disable some TestConcurrentEvents cases (which are affected by llvm.org/pr16714 -- watchpoints in multithreaded programs)
- relax number-of-bp-locations check in TestUniqueTypes/TestUnsignedTypes
- skip TestDataFormatterStdVector cases with GCC 4.8 (known failure due to llvm.org/pr15301)
- workaround for race condition in TestHelloWorld.py
- update TestSettings.py to work on distros (like Fedora) that have /bin/cat hardlinked to /usr/bin/cat

After these changes, the test suite should run cleanly against GCC 4.8 (with DWARF v4)!

llvm-svn: 187451

10 years agoFix problematic override _exc_info_to_string
Daniel Malea [Tue, 30 Jul 2013 21:28:32 +0000 (21:28 +0000)]
Fix problematic override _exc_info_to_string
- pass through to base-class implementation when raised exception is not from an LLDBTest
- should make the test suite errors a little easier to root-cause

llvm-svn: 187450

10 years agoAdd a default case to the LLVM expression opcode switch statement
Daniel Malea [Tue, 30 Jul 2013 21:26:24 +0000 (21:26 +0000)]
Add a default case to the LLVM expression opcode switch statement
- better than failing silently next time the DWARF standard introduces new opcodes!

llvm-svn: 187449

10 years agoRemove isCastable since nothing uses it now
Matt Arsenault [Tue, 30 Jul 2013 21:11:17 +0000 (21:11 +0000)]
Remove isCastable since nothing uses it now

llvm-svn: 187448

10 years agoRevert "cpp11-migrate: Write header replacements to disk"
Rafael Espindola [Tue, 30 Jul 2013 21:05:56 +0000 (21:05 +0000)]
Revert "cpp11-migrate: Write header replacements to disk"

This reverts commit 187428. It broke the windows bots.
http://bb.pgr.jp/builders/ninja-clang-i686-msc17-R/builds/3450

llvm-svn: 187447

10 years agoDebug mode for unordered_multimap. Some mods were done for unordered_map as well...
Howard Hinnant [Tue, 30 Jul 2013 21:04:42 +0000 (21:04 +0000)]
Debug mode for unordered_multimap.  Some mods were done for unordered_map as well to keep all the tests passing.  However unordered_map is at the very least still missing tests, if not functionality (if it isn't tested, it probably isn't working).

llvm-svn: 187446

10 years agoisKnownToBeAPowerOfTwo: Strengthen isKnownToBeAPowerOfTwo's analysis on add instructions
David Majnemer [Tue, 30 Jul 2013 21:01:36 +0000 (21:01 +0000)]
isKnownToBeAPowerOfTwo: Strengthen isKnownToBeAPowerOfTwo's analysis on add instructions

Call into ComputeMaskedBits to figure out which bits are set on both add
operands and determine if the value is a power-of-two-or-zero or not.

llvm-svn: 187445

10 years agoChange behavior of calling bitcasted alias functions.
Matt Arsenault [Tue, 30 Jul 2013 20:45:05 +0000 (20:45 +0000)]
Change behavior of calling bitcasted alias functions.

It will now only convert the arguments / return value and call
the underlying function if the types are able to be bitcasted.
This avoids using fp<->int conversions that would occur before.

llvm-svn: 187444

10 years ago[mips] Delete instruction format for "bal".
Akira Hatanaka [Tue, 30 Jul 2013 20:42:19 +0000 (20:42 +0000)]
[mips] Delete instruction format for "bal".

llvm-svn: 187443

10 years agoThis test may have been sensitive to the ARM ABI...
Andrew Trick [Tue, 30 Jul 2013 20:34:59 +0000 (20:34 +0000)]
This test may have been sensitive to the ARM ABI...

llvm-svn: 187442

10 years agoImplement getUniqueID for directories on windows.
Rafael Espindola [Tue, 30 Jul 2013 20:25:53 +0000 (20:25 +0000)]
Implement getUniqueID for directories on windows.

llvm-svn: 187441

10 years ago[mips] Define "bal" as a pseudo instruction. Also, fix bug in the InstAlias that
Akira Hatanaka [Tue, 30 Jul 2013 20:24:24 +0000 (20:24 +0000)]
[mips] Define "bal" as a pseudo instruction. Also, fix bug in the InstAlias that
turns "bal" into "bgezal".

llvm-svn: 187440

10 years agoRemove dead code.
Rafael Espindola [Tue, 30 Jul 2013 20:02:18 +0000 (20:02 +0000)]
Remove dead code.

llvm-svn: 187439

10 years agoDown-scale slot index distance to save bits.
Andrew Trick [Tue, 30 Jul 2013 19:59:19 +0000 (19:59 +0000)]
Down-scale slot index distance to save bits.

llvm-svn: 187438

10 years agowhitespace
Andrew Trick [Tue, 30 Jul 2013 19:59:15 +0000 (19:59 +0000)]
whitespace

llvm-svn: 187437

10 years agoMI Sched: Track live-thru registers.
Andrew Trick [Tue, 30 Jul 2013 19:59:12 +0000 (19:59 +0000)]
MI Sched: Track live-thru registers.

When registers must be live throughout the scheduling region, increase
the limit for the register class. Once we exceed the original limit,
they will be spilled, and there's no point further reducing pressure.

This isn't a perfect heuristics but avoids a situation where the
scheduler could become trapped by trying to achieve the impossible.

llvm-svn: 187436

10 years agoMI Sched fix: assert "Disconnected LRG within the scheduling region."
Andrew Trick [Tue, 30 Jul 2013 19:59:08 +0000 (19:59 +0000)]
MI Sched fix: assert "Disconnected LRG within the scheduling region."

llvm-svn: 187435

10 years agoSend a stop event when an expression stops at a breakpoint
Sean Callanan [Tue, 30 Jul 2013 19:54:09 +0000 (19:54 +0000)]
Send a stop event when an expression stops at a breakpoint
in an expression and doesn't ignore the stop.

Patch by Jim Ingham.

<rdar://problem/14583884>

llvm-svn: 187434

10 years ago[Sparc] Rewrite MBB's live-in registers for leaf functions. Also, add
Venkatraman Govindaraju [Tue, 30 Jul 2013 19:53:10 +0000 (19:53 +0000)]
[Sparc] Rewrite MBB's live-in registers for leaf functions. Also, add
register i7 as a live-in if current function's return address is taken.

This revision fixes PR16269.

llvm-svn: 187433

10 years agoAdd missing -Xlinker to order test.
Stefanus Du Toit [Tue, 30 Jul 2013 19:19:55 +0000 (19:19 +0000)]
Add missing -Xlinker to order test.

Both the parameter itself and the argument to the parameter must be prefixed
with -Xlinker so that they are passed properly.

llvm-svn: 187432

10 years agoUse -Wl to specify -rpath correctly.
Stefanus Du Toit [Tue, 30 Jul 2013 19:19:49 +0000 (19:19 +0000)]
Use -Wl to specify -rpath correctly.

llvm-svn: 187431

10 years agoImplement TokenizeWindowsCommandLine.
Rui Ueyama [Tue, 30 Jul 2013 19:03:20 +0000 (19:03 +0000)]
Implement TokenizeWindowsCommandLine.

This is a follow up patch for r187390 to implement the parser for the
Windows-style command line. This should follow the rule as described
at http://msdn.microsoft.com/en-us/library/windows/desktop/17w5ykft(v=vs.85).aspx

Differential Revision: http://llvm-reviews.chandlerc.com/D1235

llvm-svn: 187430

10 years agotip-of-trunk clang has corrected some access checks for special members in a virtual...
Howard Hinnant [Tue, 30 Jul 2013 19:00:45 +0000 (19:00 +0000)]
tip-of-trunk clang has corrected some access checks for special members in a virtual inheritance hierarchy.  Change a few private inheritances to protected.  This change will not impact what the test was testing.  This fixes llvm.org/bugs/show_bug.cgi?id=16753.

llvm-svn: 187429

10 years agocpp11-migrate: Write header replacements to disk
Tareq A. Siraj [Tue, 30 Jul 2013 18:18:02 +0000 (18:18 +0000)]
cpp11-migrate: Write header replacements to disk

Committing r187204 with fixes for darwin. Note that one of the lit tests are
disabled on windows due to a bug in writing header replacements to file.

Header replacements are now written to disk in YAML format for an external tool
to merge. A unique file will be created in the same directory as the header
with all replacements that came from a source file that included the header
file. The YAML file will have:
 - Name of the file
 - Transform ID that generated the replacement
 - Offset
 - Length
 - Replacement text

Any tool reading these replacements should read them using the
TransformDocument struct.

llvm-svn: 187428

10 years agoStart keeping track of what work was done to detect a GCC installation
Chandler Carruth [Tue, 30 Jul 2013 17:57:09 +0000 (17:57 +0000)]
Start keeping track of what work was done to detect a GCC installation
on the system, and report it when running the driver in verbose mode.
Without this it is essentially impossible to understand why a particular
GCC toolchain is used by Clang for libstdc++, libgcc, etc.

This also required threading a hook through the toolchain layers for
a specific toolchain implementation to print custom information under
'clang -v'. The naming here isn't spectacular. Suggestions welcome.

llvm-svn: 187427

10 years agoUse the correct compiler to compute dependencies.
Stefanus Du Toit [Tue, 30 Jul 2013 17:33:30 +0000 (17:33 +0000)]
Use the correct compiler to compute dependencies.

This uses $(CXX) instead of $(CC) to generate the .d files for tests built
with Makefiles.

llvm-svn: 187426

10 years agoAdd format specifiers to various format ids so we can print thread ids in decimal...
Michael Sartain [Tue, 30 Jul 2013 16:44:36 +0000 (16:44 +0000)]
Add format specifiers to various format ids so we can print thread ids in decimal on Linux and FreeBSD.

CC: emaste
Differential Revision: http://llvm-reviews.chandlerc.com/D1234

llvm-svn: 187425

10 years agoFix parameter ordering bug in createDebugIRPass()
Daniel Malea [Tue, 30 Jul 2013 16:16:11 +0000 (16:16 +0000)]
Fix parameter ordering bug in createDebugIRPass()
- Thanks to Ilia Filippov for pointing out the inconsistency!

llvm-svn: 187424

10 years agoUpdates the DW_AT_data_member_location handlers for the LLDB DWARF plugin
Ashok Thirumurthi [Tue, 30 Jul 2013 14:58:39 +0000 (14:58 +0000)]
Updates the DW_AT_data_member_location handlers for the LLDB DWARF plugin
to handle the case of an integer constant (DWARF 3 and later).

- Fixes tests that assert in RecordLayoutBuilder::updateExternalFieldOffset
because LLDB was providing an external AST source with missing member offsets.

llvm-svn: 187423

10 years agoRun-time reg context selection for POSIX targets
Ed Maste [Tue, 30 Jul 2013 14:40:59 +0000 (14:40 +0000)]
Run-time reg context selection for POSIX targets

Instantiate RegisterContext... based on getOS() instead of with
compile-time #ifdef-ery.

The assert() here is unfortunate, but better than crashing with no
explanation.

This change is equivalent to r186865 for elf-core.

llvm-svn: 187422

10 years agoR600/SI: Expand vector fp <-> int conversions
Tom Stellard [Tue, 30 Jul 2013 14:31:03 +0000 (14:31 +0000)]
R600/SI: Expand vector fp <-> int conversions

llvm-svn: 187421

10 years agoerr_attribute_missing_parameter_name has been replaced by err_attribute_argument_type.
Aaron Ballman [Tue, 30 Jul 2013 14:29:12 +0000 (14:29 +0000)]
err_attribute_missing_parameter_name has been replaced by err_attribute_argument_type.

llvm-svn: 187420