platform/upstream/llvm.git
11 years ago[asan/msan] refactor allocator's BulkAllocate (move to AllocatorFreeList)
Kostya Serebryany [Thu, 6 Dec 2012 13:34:11 +0000 (13:34 +0000)]
[asan/msan] refactor allocator's BulkAllocate (move to AllocatorFreeList)

llvm-svn: 169503

11 years agotsan: add new file to cmake
Dmitry Vyukov [Thu, 6 Dec 2012 13:32:49 +0000 (13:32 +0000)]
tsan: add new file to cmake

llvm-svn: 169502

11 years agotsan: add some more functions for java filtering
Dmitry Vyukov [Thu, 6 Dec 2012 13:20:37 +0000 (13:20 +0000)]
tsan: add some more functions for java filtering

llvm-svn: 169501

11 years agoImprove clang-format's handling of unary operators.
Daniel Jasper [Thu, 6 Dec 2012 13:16:39 +0000 (13:16 +0000)]
Improve clang-format's handling of unary operators.

llvm-svn: 169500

11 years ago[asan/msan] add GetBlockBegin to the 32-bit allocator (+test)
Kostya Serebryany [Thu, 6 Dec 2012 13:13:58 +0000 (13:13 +0000)]
[asan/msan] add GetBlockBegin to the 32-bit allocator (+test)

llvm-svn: 169499

11 years agoDisable hexagon toolchain test on windows targets
Matthew Curtis [Thu, 6 Dec 2012 13:06:19 +0000 (13:06 +0000)]
Disable hexagon toolchain test on windows targets

llvm-svn: 169498

11 years ago[asan/msan] one more test for 32-bit allocator
Kostya Serebryany [Thu, 6 Dec 2012 13:00:11 +0000 (13:00 +0000)]
[asan/msan] one more test for 32-bit allocator

llvm-svn: 169497

11 years ago[asan/msan] new 32-bit allocator, basic functionality so far
Kostya Serebryany [Thu, 6 Dec 2012 12:49:28 +0000 (12:49 +0000)]
[asan/msan] new 32-bit allocator, basic functionality so far

llvm-svn: 169496

11 years agoHexagon TC: Update toolchain to add appropriate include
Matthew Curtis [Thu, 6 Dec 2012 12:43:18 +0000 (12:43 +0000)]
Hexagon TC: Update toolchain to add appropriate include
 paths

- Inherit from Linux rather than ToolChain
- Override AddClangSystemIncludeArgs and AddClangCXXStdlibIncludeArgs
  to properly set include paths.

llvm-svn: 169495

11 years agotsan: add 'free' to java nonsense reports
Dmitry Vyukov [Thu, 6 Dec 2012 12:42:53 +0000 (12:42 +0000)]
tsan: add 'free' to java nonsense reports

llvm-svn: 169494

11 years agotsan: add mutexsets to reports
Dmitry Vyukov [Thu, 6 Dec 2012 12:16:15 +0000 (12:16 +0000)]
tsan: add mutexsets to reports
With this change reports say what mutexes the threads hold around the racy memory accesses.

llvm-svn: 169493

11 years agoclang/test/CodeGen/2008-01-07-UnusualIntSize.c: Add triple x86_64. It doesn't assume...
NAKAMURA Takumi [Thu, 6 Dec 2012 12:05:25 +0000 (12:05 +0000)]
clang/test/CodeGen/2008-01-07-UnusualIntSize.c: Add triple x86_64. It doesn't assume 32-bit target, for now.

llvm-svn: 169492

11 years ago[msan] Fix a typo in a comment.
Evgeniy Stepanov [Thu, 6 Dec 2012 11:58:59 +0000 (11:58 +0000)]
[msan] Fix a typo in a comment.

llvm-svn: 169491

11 years ago[msan] Do not store origin for clean values.
Evgeniy Stepanov [Thu, 6 Dec 2012 11:41:03 +0000 (11:41 +0000)]
[msan] Do not store origin for clean values.

Instead of unconditionally storing origin with every application store,
only do this when the shadow of the stored value is != 0.

This change also delays instrumentation of stores until after the walk over
function's instructions, because adding new basic blocks confuses InstVisitor.

We only keep 1 origin value per 4 bytes of application memory. This change
fixes the bug when a store of a single clean byte wiped the origin for the
whole 4-byte area.

Since stores of uninitialized values are relatively uncommon, this change
improves performance of track-origins mode by 5% median and by up to 47% on
specs.

llvm-svn: 169490

11 years agoRework the bitfield access IR generation to address PR13619 and
Chandler Carruth [Thu, 6 Dec 2012 11:14:44 +0000 (11:14 +0000)]
Rework the bitfield access IR generation to address PR13619 and
generally support the C++11 memory model requirements for bitfield
accesses by relying more heavily on LLVM's memory model.

The primary change this introduces is to move from a manually aligned
and strided access pattern across the bits of the bitfield to a much
simpler lump access of all bits in the bitfield followed by math to
extract the bits relevant for the particular field.

This simplifies the code significantly, but relies on LLVM to
intelligently lowering these integers.

I have tested LLVM's lowering both synthetically and in benchmarks. The
lowering appears to be functional, and there are no really significant
performance regressions. Different code patterns accessing bitfields
will vary in how this impacts them. The only real regressions I'm seeing
are a few patterns where the LLVM code generation for loads that feed
directly into a mask operation don't take advantage of the x86 ability
to do a smaller load and a cheap zero-extension. This doesn't regress
any benchmark in the nightly test suite on my box past the noise
threshold, but my box is quite noisy. I'll be watching the LNT numbers,
and will look into further improvements to the LLVM lowering as needed.

llvm-svn: 169489

11 years ago"<<" alignment for clang-format.
Daniel Jasper [Thu, 6 Dec 2012 09:56:08 +0000 (09:56 +0000)]
"<<" alignment for clang-format.

Also, small fix for handling the first token correctly.

Review: http://llvm-reviews.chandlerc.com/D177
llvm-svn: 169488

11 years agoIntegrate polly test-suite into an llvm "make check-all" if built as part of the...
Andy Gibbs [Thu, 6 Dec 2012 07:59:18 +0000 (07:59 +0000)]
Integrate polly test-suite into an llvm "make check-all" if built as part of the whole using cmake.

llvm-svn: 169487

11 years agos/getLowerBoundDefault/getDefaultLowerBound/ for consistency. Also put the more natur...
Bill Wendling [Thu, 6 Dec 2012 07:55:19 +0000 (07:55 +0000)]
s/getLowerBoundDefault/getDefaultLowerBound/ for consistency. Also put the more natural check first in the if-then statement.

llvm-svn: 169486

11 years agoRemove unused variable.
Bill Wendling [Thu, 6 Dec 2012 07:43:17 +0000 (07:43 +0000)]
Remove unused variable.

llvm-svn: 169485

11 years agoHandle non-default array bounds.
Bill Wendling [Thu, 6 Dec 2012 07:38:10 +0000 (07:38 +0000)]
Handle non-default array bounds.

Some languages, e.g. Ada and Pascal, allow you to specify that the array bounds
are different from the default (1 in these cases). If we have a lower bound
that's non-default, then we emit the lower bound. We also calculate the correct
upper bound in those cases.

llvm-svn: 169484

11 years agoRemove intrinsic specific instructions for (V)MOVQUmr with patterns pointing to the...
Craig Topper [Thu, 6 Dec 2012 07:31:16 +0000 (07:31 +0000)]
Remove intrinsic specific instructions for (V)MOVQUmr with patterns pointing to the normal instructions.

llvm-svn: 169482

11 years agoUse the BlockDecl captures list to infer the direct captures for a BlockDataRegion...
Ted Kremenek [Thu, 6 Dec 2012 07:17:26 +0000 (07:17 +0000)]
Use the BlockDecl captures list to infer the direct captures for a BlockDataRegion.  Fixes <rdar://problem/12415065>.

We still need to do a recursive walk to determine all static/global variables
referenced by a block, which is needed for region invalidation.

llvm-svn: 169481

11 years agoOnly provide explicit getCapturedRegion() and getOriginalRegion() from referenced_var...
Ted Kremenek [Thu, 6 Dec 2012 07:17:20 +0000 (07:17 +0000)]
Only provide explicit getCapturedRegion() and getOriginalRegion() from referenced_vars_iterator.

This is a nice conceptual cleanup.

llvm-svn: 169480

11 years agoPull logic to map from VarDecl* to captured region using a helper function. WIP.
Ted Kremenek [Thu, 6 Dec 2012 07:17:13 +0000 (07:17 +0000)]
Pull logic to map from VarDecl* to captured region using a helper function.  WIP.

llvm-svn: 169479

11 years agoUse 'getOriginalRegion()' rather than going through the logic to recreate it.
Ted Kremenek [Thu, 6 Dec 2012 07:17:04 +0000 (07:17 +0000)]
Use 'getOriginalRegion()' rather than going through the logic to recreate it.

llvm-svn: 169478

11 years agoMark MOVDQ(A/U)rm as ReMaterializable. Mark all MOVDQ(A/U) instructions as neverHasSi...
Craig Topper [Thu, 6 Dec 2012 06:49:16 +0000 (06:49 +0000)]
Mark MOVDQ(A/U)rm as ReMaterializable. Mark all MOVDQ(A/U) instructions as neverHasSideEffects.

llvm-svn: 169477

11 years agoFix http://stackoverflow.com/questions/13521163
Richard Smith [Thu, 6 Dec 2012 06:44:44 +0000 (06:44 +0000)]
Fix http://stackoverflow.com/questions/13521163

Don't require that, during template deduction, a template specialization type
as a function parameter has at least as many template arguments as one used in
a function argument (not even if the argument has been resolved to an exact
type); the additional parameters might be provided by default template
arguments in the template. We don't need this check, since we now implement
[temp.deduct.call]p4 with an additional check after deduction.

llvm-svn: 169475

11 years ago[tsan] add MmapAlignedOrDie
Kostya Serebryany [Thu, 6 Dec 2012 06:10:31 +0000 (06:10 +0000)]
[tsan] add MmapAlignedOrDie

llvm-svn: 169474

11 years agoDon't use dyn_cast on a Type* which might not be canonical. Fixes an extremely obscur...
Richard Smith [Thu, 6 Dec 2012 03:04:50 +0000 (03:04 +0000)]
Don't use dyn_cast on a Type* which might not be canonical. Fixes an extremely obscure record layout bug.

llvm-svn: 169467

11 years agoFix ABIMacOSX_i386::RegisterIsVolatile to return the negated value of
Jason Molenda [Thu, 6 Dec 2012 02:49:20 +0000 (02:49 +0000)]
Fix ABIMacOSX_i386::RegisterIsVolatile to return the negated value of
RegisterIsCalleeSaved.  Add ebp back to the list of registers that
are callee saved.
<rdar://problem/12817918>

llvm-svn: 169466

11 years ago<rdar://problem/12560257>
Greg Clayton [Thu, 6 Dec 2012 02:33:54 +0000 (02:33 +0000)]
<rdar://problem/12560257>

Fixed zero sized arrays to work correctly. This will only happen once we get a clang that emits correct debug info for zero sized arrays. For now I have marked the TestStructTypes.py as an expected failure.

llvm-svn: 169465

11 years agoProperly fix the tes.
Evan Cheng [Thu, 6 Dec 2012 02:29:29 +0000 (02:29 +0000)]
Properly fix the tes.

llvm-svn: 169464

11 years agollvm/test/CodeGen/ARM/extload-knownzero.ll: Try to unbreak, to add -O0. I guess Chad...
NAKAMURA Takumi [Thu, 6 Dec 2012 02:22:58 +0000 (02:22 +0000)]
llvm/test/CodeGen/ARM/extload-knownzero.ll: Try to unbreak, to add -O0. I guess Chad expects fastisel here.

llvm-svn: 169463

11 years agoRevert r169456, "change MCContext to work on the doInitialization/doFinalization...
NAKAMURA Takumi [Thu, 6 Dec 2012 02:00:13 +0000 (02:00 +0000)]
Revert r169456, "change MCContext to work on the doInitialization/doFinalization model"

It broke many builders.

llvm-svn: 169462

11 years agoThe expression parser will now check the validity
Sean Callanan [Thu, 6 Dec 2012 01:35:38 +0000 (01:35 +0000)]
The expression parser will now check the validity
of the "self"/"this" pointer for the current stack
frame before wrapping expressions in C++ or
Objective-C methods.  This works around bad debug
info where the compiler emits a "this" or "self"
but doesn't give any way to find its location.

<rdar://problem/12809985>

llvm-svn: 169461

11 years ago[arm fast-isel] Make the fast-isel implementation of memcpy respect alignment.
Chad Rosier [Thu, 6 Dec 2012 01:34:31 +0000 (01:34 +0000)]
[arm fast-isel] Make the fast-isel implementation of memcpy respect alignment.
rdar://12821569

llvm-svn: 169460

11 years agoLet targets provide hooks that compute known zero and ones for any_extend
Evan Cheng [Thu, 6 Dec 2012 01:28:01 +0000 (01:28 +0000)]
Let targets provide hooks that compute known zero and ones for any_extend
and extload's. If they are implemented as zero-extend, or implicitly
zero-extend, then this can enable more demanded bits optimizations. e.g.

define void @foo(i16* %ptr, i32 %a) nounwind {
entry:
  %tmp1 = icmp ult i32 %a, 100
  br i1 %tmp1, label %bb1, label %bb2
bb1:
  %tmp2 = load i16* %ptr, align 2
  br label %bb2
bb2:
  %tmp3 = phi i16 [ 0, %entry ], [ %tmp2, %bb1 ]
  %cmp = icmp ult i16 %tmp3, 24
  br i1 %cmp, label %bb3, label %exit
bb3:
  call void @bar() nounwind
  br label %exit
exit:
  ret void
}

This compiles to the followings before:
        push    {lr}
        mov     r2, #0
        cmp     r1, #99
        bhi     LBB0_2
@ BB#1:                                 @ %bb1
        ldrh    r2, [r0]
LBB0_2:                                 @ %bb2
        uxth    r0, r2
        cmp     r0, #23
        bhi     LBB0_4
@ BB#3:                                 @ %bb3
        bl      _bar
LBB0_4:                                 @ %exit
        pop     {lr}
        bx      lr

The uxth is not needed since ldrh implicitly zero-extend the high bits. With
this change it's eliminated.

rdar://12771555

llvm-svn: 169459

11 years agoDisable clang/test/Preprocessor/macro-multiline.c for now, while investigating lit...
NAKAMURA Takumi [Thu, 6 Dec 2012 01:09:31 +0000 (01:09 +0000)]
Disable clang/test/Preprocessor/macro-multiline.c for now, while investigating lit.ShUtil.parser.

llvm-svn: 169458

11 years agomore test of template declarations in a
Fariborz Jahanian [Thu, 6 Dec 2012 00:57:28 +0000 (00:57 +0000)]
more test of template declarations in a
<declaration> XML tag. // rdar://12378714

llvm-svn: 169457

11 years agochange MCContext to work on the doInitialization/doFinalization model
Pedro Artigas [Thu, 6 Dec 2012 00:50:55 +0000 (00:50 +0000)]
change MCContext to work on the doInitialization/doFinalization model

reviewed by Evan Cheng <evan.cheng@apple.com>

llvm-svn: 169456

11 years agoSet the 'MadeChange' variable if we are deleting blocks.
Bill Wendling [Thu, 6 Dec 2012 00:30:20 +0000 (00:30 +0000)]
Set the 'MadeChange' variable if we are deleting blocks.

llvm-svn: 169455

11 years agoMove isprint8() into lldb_private as per post-commit review from Stefanus
Daniel Malea [Thu, 6 Dec 2012 00:10:37 +0000 (00:10 +0000)]
Move isprint8() into lldb_private as per post-commit review from Stefanus

llvm-svn: 169454

11 years agoMore C++ testing of declarations embedded in
Fariborz Jahanian [Thu, 6 Dec 2012 00:09:40 +0000 (00:09 +0000)]
More C++ testing of declarations embedded in
<declaration> tag of Comment XML  and fixing
DeclPrint of templates along the way - wip.
//rdar://12378714

llvm-svn: 169453

11 years agoHave CannotBeNegativeZero() be aware of the nsz fast-math flag
Michael Ilseman [Thu, 6 Dec 2012 00:07:09 +0000 (00:07 +0000)]
Have CannotBeNegativeZero() be aware of the nsz fast-math flag

llvm-svn: 169452

11 years agoRewrote the bitfield logic. Major changes include:
Sean Callanan [Wed, 5 Dec 2012 23:37:14 +0000 (23:37 +0000)]
Rewrote the bitfield logic.  Major changes include:

- Removed the BitfieldMap class because it is unnecessary.
  We now just track the most recently added field.

- Moved the code that calculates bitfield widths so it
  can also be used to determine whether it's necessary
  to insert anonymous fields.

- Simplified the anonymous field calculation code into
  three cases (two of which are resolved identically).

- Beefed up the bitfield testcase.

llvm-svn: 169449

11 years ago[driver, ms-inline asm] -fms-compatibility enables -fms-extensions, so this should...
Chad Rosier [Wed, 5 Dec 2012 23:35:10 +0000 (23:35 +0000)]
[driver, ms-inline asm] -fms-compatibility enables -fms-extensions, so this should enable
the AsmBlocks language extension as well.
rdar://12808010

llvm-svn: 169448

11 years agoTaking ownership of indvars/lsr.
Andrew Trick [Wed, 5 Dec 2012 23:32:44 +0000 (23:32 +0000)]
Taking ownership of indvars/lsr.

Evan nominated me for this a while back, and no one has offered to
save me from it.

llvm-svn: 169447

11 years agoPR10867: Analogue of r169441 for when using external 'sh'. And actually run the test!
Richard Smith [Wed, 5 Dec 2012 23:15:33 +0000 (23:15 +0000)]
PR10867: Analogue of r169441 for when using external 'sh'. And actually run the test!

llvm-svn: 169446

11 years ago[driver, ms-inline asm] Have -fms-extensions enable the AsmBlocks language
Chad Rosier [Wed, 5 Dec 2012 23:08:09 +0000 (23:08 +0000)]
[driver, ms-inline asm] Have -fms-extensions enable the AsmBlocks language
option.  MS-style inline asm can now be enabled by either -fasm-blocks or
-fms-extensions.
rdar://12808010

llvm-svn: 169445

11 years agoAdding missing log->Printf instead of printf in Target::SetArchitecture
Jason Molenda [Wed, 5 Dec 2012 23:07:34 +0000 (23:07 +0000)]
Adding missing log->Printf instead of printf in Target::SetArchitecture
for target logging.

llvm-svn: 169444

11 years agoRegPressureTracker::dump(): Remove unnecessary argument.
Andrew Trick [Wed, 5 Dec 2012 23:05:22 +0000 (23:05 +0000)]
RegPressureTracker::dump(): Remove unnecessary argument.

llvm-svn: 169443

11 years agoLooks like lit on Windows can't cope with parens here, and in any case, we shouldn...
Richard Smith [Wed, 5 Dec 2012 22:59:28 +0000 (22:59 +0000)]
Looks like lit on Windows can't cope with parens here, and in any case, we shouldn't need them after r169441.

llvm-svn: 169442

11 years agoPR10867. lit would interpret
Richard Smith [Wed, 5 Dec 2012 22:54:26 +0000 (22:54 +0000)]
PR10867. lit would interpret

  RUN: a
  RUN: b || true

as "a && (b || true)" in Tcl mode, and as "(a && b) || true" in sh mode.
Everyone seems to (quite reasonably) write tests assuming the Tcl behavior,
so use that in sh mode too.

llvm-svn: 169441

11 years agoIn DeclPrint add printing of '= default'
Fariborz Jahanian [Wed, 5 Dec 2012 22:53:06 +0000 (22:53 +0000)]
In DeclPrint add printing of '= default'
in constructors.

llvm-svn: 169440

11 years agoDo not run tests MappedMemoryTest.BasicWrite and MultipleWrite unless both
Akira Hatanaka [Wed, 5 Dec 2012 22:43:07 +0000 (22:43 +0000)]
Do not run tests MappedMemoryTest.BasicWrite and MultipleWrite unless both
MF_READ and MF_WRITE are set.

llvm-svn: 169439

11 years agoQuick build fix for c++03 clang. This needs a proper solution. Note that these offset...
Michael J. Spencer [Wed, 5 Dec 2012 22:38:01 +0000 (22:38 +0000)]
Quick build fix for c++03 clang. This needs a proper solution. Note that these offsets are guaranteed to be correct by Endian.h.

llvm-svn: 169438

11 years agoMore workarounds for PR10867.
Richard Smith [Wed, 5 Dec 2012 22:33:14 +0000 (22:33 +0000)]
More workarounds for PR10867.

llvm-svn: 169437

11 years agoIn DeclPrint add printing of 'explicit'
Fariborz Jahanian [Wed, 5 Dec 2012 22:19:06 +0000 (22:19 +0000)]
In DeclPrint add printing of 'explicit'
constructors.

llvm-svn: 169435

11 years agoFix an egregiously broken test. This pattern doesn't work:
Richard Smith [Wed, 5 Dec 2012 22:18:04 +0000 (22:18 +0000)]
Fix an egregiously broken test. This pattern doesn't work:

RUN: a
RUN: b || true

lit expands it to a && b || true, and the || true applies to both commands (thus ignoring failures in 'a')! This is PR10867 again.

llvm-svn: 169434

11 years agoChange std::vector to SmallVector<4> and remove some unused methods.
Eli Bendersky [Wed, 5 Dec 2012 22:11:02 +0000 (22:11 +0000)]
Change std::vector to SmallVector<4> and remove some unused methods.

This is more consistent with other vectors in this code. In addition, I ran some
tests compiling a large program and >96% of fragments have 4 or less fixups, so
SmallVector<4> is a good optimization.

llvm-svn: 169433

11 years agoDefine new-value store instructions with base+immediate addressing mode
Jyotsna Verma [Wed, 5 Dec 2012 22:02:56 +0000 (22:02 +0000)]
Define new-value store instructions with base+immediate addressing mode
using multiclass.

llvm-svn: 169432

11 years ago<rdar://problem/12560257>
Greg Clayton [Wed, 5 Dec 2012 21:59:39 +0000 (21:59 +0000)]
<rdar://problem/12560257>

Fixed arrays with a size of 1 to correctly have 1 member when DW_AT_upper_bound was set to zero and no other attributes were set.

llvm-svn: 169431

11 years ago[c-index-test] Introduce '-index-compile-db' which accepts a compilation database...
Argyrios Kyrtzidis [Wed, 5 Dec 2012 21:53:37 +0000 (21:53 +0000)]
[c-index-test] Introduce '-index-compile-db' which accepts a compilation database file
and does an '-index-file' for all compile commands in the database.

llvm-svn: 169430

11 years agoFix name. The array is unboundED.
Bill Wendling [Wed, 5 Dec 2012 21:43:37 +0000 (21:43 +0000)]
Fix name. The array is unboundED.

llvm-svn: 169429

11 years agoFix name. The array is unboundED.
Bill Wendling [Wed, 5 Dec 2012 21:43:30 +0000 (21:43 +0000)]
Fix name. The array is unboundED.

llvm-svn: 169428

11 years agoRegisterPressureTracker: fix findUseBetween to handle DebugValue
Andrew Trick [Wed, 5 Dec 2012 21:37:50 +0000 (21:37 +0000)]
RegisterPressureTracker: fix findUseBetween to handle DebugValue

llvm-svn: 169427

11 years agoRegisterPressureTracker: unify virtual registers and physical regunits.
Andrew Trick [Wed, 5 Dec 2012 21:37:47 +0000 (21:37 +0000)]
RegisterPressureTracker: unify virtual registers and physical regunits.

Now that live register units are tracked individually, the code can be simplified.

llvm-svn: 169426

11 years agoRegisterPresssureTracker: Track live physical register by unit.
Andrew Trick [Wed, 5 Dec 2012 21:37:42 +0000 (21:37 +0000)]
RegisterPresssureTracker: Track live physical register by unit.

This is much simpler to reason about, more efficient, and
fixes some corner cases involving implicit super-register defs.
Fixed rdar://12797931.

llvm-svn: 169425

11 years ago<rdar://problem/12749733>
Greg Clayton [Wed, 5 Dec 2012 21:24:42 +0000 (21:24 +0000)]
<rdar://problem/12749733>

Always allows getting builtin types by name even if there is no backing debug information.

llvm-svn: 169424

11 years agoCost Model: change the default cost of control flow instructions (br / ret / ......
Nadav Rotem [Wed, 5 Dec 2012 21:21:26 +0000 (21:21 +0000)]
Cost Model: change the default cost of control flow instructions (br / ret / ...) to zero.

llvm-svn: 169423

11 years ago[driver, ms-inline asm] MS-Style inline assembly is controlled by the
Chad Rosier [Wed, 5 Dec 2012 21:08:21 +0000 (21:08 +0000)]
[driver, ms-inline asm] MS-Style inline assembly is controlled by the
-fasm-blocks flag, not the -fms-extensions flag.
rdar://12808010

llvm-svn: 169422

11 years agoBasic clang-format vim-integration.
Daniel Jasper [Wed, 5 Dec 2012 21:06:08 +0000 (21:06 +0000)]
Basic clang-format vim-integration.

File contains installation and usage instructions.

llvm-svn: 169421

11 years agoCorrect ARM NOP encoding
David Sehr [Wed, 5 Dec 2012 21:01:27 +0000 (21:01 +0000)]
Correct ARM NOP encoding

The encoding of NOP in ARMAsmBackend.cpp is missing a trailing zero, which
causes the emission of a coprocessor instruction rather than "mov r0, r0"
as indicated in the comment.  The test also checks for the wrong encoding.

http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20121203/157919.html

llvm-svn: 169420

11 years agoRemove unused methods
Eli Bendersky [Wed, 5 Dec 2012 20:56:39 +0000 (20:56 +0000)]
Remove unused methods

llvm-svn: 169419

11 years ago[NVPTX] Fix crash with unnamed struct arguments
Justin Holewinski [Wed, 5 Dec 2012 20:50:28 +0000 (20:50 +0000)]
[NVPTX] Fix crash with unnamed struct arguments

Patch by Eric Holk

llvm-svn: 169418

11 years agoDefine isprint8() wrapper around isprint() in order to avoid crashes on Linux
Daniel Malea [Wed, 5 Dec 2012 20:24:57 +0000 (20:24 +0000)]
Define isprint8() wrapper around isprint() in order to avoid crashes on Linux

llvm-svn: 169417

11 years agoAdd dump of Win64 EH unwind data.
Michael J. Spencer [Wed, 5 Dec 2012 20:12:35 +0000 (20:12 +0000)]
Add dump of Win64 EH unwind data.

The new command line option -unwind-info dumps the Win64 EH unwind
data to the console. This is a nice feature if you need to debug
generated EH data (e.g. from LLVM). Includes a test case.

Initial patch by João Matos, extensions and rework by Kai Nacke.

llvm-svn: 169415

11 years agoUpdates to Win64EH.h structures.
Michael J. Spencer [Wed, 5 Dec 2012 20:12:13 +0000 (20:12 +0000)]
Updates to Win64EH.h structures.

Change member types of RuntimeFunction and UnwindInfo from uint64_t to
uint32_t:
These members represent addresses. According to MSDN, they are image
relative, that is, they are 32-bit offsets from the starting address
of the image that contains the function table entry.
See MSDN for more information:
RUNTIME_FUNCTION: http://msdn.microsoft.com/en-us/library/ft9x1kdx.aspx
UNWIND_INFO: http://msdn.microsoft.com/en-us/library/ddssxxy8.aspx

Make Win64.h platform-neutral:
The standard types unit8_t, uint16_t and uint32_t are replaced with
their counterparts from Endian.h. Accessor functions are introduced to
replace bit fields.

Patch by João Matos and Kai Nacke.

llvm-svn: 169414

11 years agofix comment.
Fariborz Jahanian [Wed, 5 Dec 2012 20:10:11 +0000 (20:10 +0000)]
fix comment.

llvm-svn: 169413

11 years agoTesting C++ declarations embedded in
Fariborz Jahanian [Wed, 5 Dec 2012 19:54:11 +0000 (19:54 +0000)]
Testing C++ declarations embedded in
<declaration> tag of Comment XML.
Added DeclPrint support for constructors
and fix tests accordingly.
This is wip. // rdar://12378714

llvm-svn: 169412

11 years ago[ms-inline asm] Add more tests.
Chad Rosier [Wed, 5 Dec 2012 19:52:05 +0000 (19:52 +0000)]
[ms-inline asm] Add more tests.

llvm-svn: 169411

11 years agoTest commit.
David Sehr [Wed, 5 Dec 2012 19:47:56 +0000 (19:47 +0000)]
Test commit.

llvm-svn: 169410

11 years agoBacked out part of the ABI changes that were checked in because it breaks the i386...
Greg Clayton [Wed, 5 Dec 2012 19:43:20 +0000 (19:43 +0000)]
Backed out part of the ABI changes that were checked in because it breaks the i386 test suite as it makes backtraces for the first instruction of a function fail. Stepping relies on backtraces being correct, so I am reverting what is causing the breakage.

I filed this to track the fix:

<rdar://problem/12817918> Recent i386 ABI changes break the i386 test suite because stack backtracing is busted when stopped in trampolines

llvm-svn: 169409

11 years agoUse multiclass to define store instructions with base+immediate offset
Jyotsna Verma [Wed, 5 Dec 2012 19:32:03 +0000 (19:32 +0000)]
Use multiclass to define store instructions with base+immediate offset
addressing mode and immediate stored value.

llvm-svn: 169408

11 years agoRemove the non-const getInst accessor. It wasn't being used, and isn't very
Eli Bendersky [Wed, 5 Dec 2012 19:31:33 +0000 (19:31 +0000)]
Remove the non-const getInst accessor. It wasn't being used, and isn't very
good for enacpsulation anyway.

llvm-svn: 169407

11 years agoAdjust JIT target triple on OS X to match the current architecture.
Bob Wilson [Wed, 5 Dec 2012 19:09:13 +0000 (19:09 +0000)]
Adjust JIT target triple on OS X to match the current architecture.

For OS X builds, we generate one version of config.h but then build for
multiple architectures.  This means that the LLVM_HOSTTRIPLE setting may have
the wrong architecture.  Adjust it dynamically to match the current
architecture.  <rdar://problem/12715470>

llvm-svn: 169405

11 years agoFix misplaced closing brace.
Matthew Curtis [Wed, 5 Dec 2012 19:00:34 +0000 (19:00 +0000)]
Fix misplaced closing brace.

llvm-svn: 169404

11 years agoRename class __lambda_node to ___lambda_node to fix compile failure with gcc 4.6...
Daniel Malea [Wed, 5 Dec 2012 18:55:49 +0000 (18:55 +0000)]
Rename class __lambda_node to ___lambda_node to fix compile failure with gcc 4.6 and 4.7
- using "__lambda_node" causes internal compiler error in newer GCC versions

llvm-svn: 169402

11 years agoRemove two dead functions resulting from a bad rebase.
Andrew Trick [Wed, 5 Dec 2012 18:52:15 +0000 (18:52 +0000)]
Remove two dead functions resulting from a bad rebase.

llvm-svn: 169401

11 years agoFormat strings: offer a cast to 'unichar' for %C in Objective-C contexts.
Jordan Rose [Wed, 5 Dec 2012 18:44:49 +0000 (18:44 +0000)]
Format strings: offer a cast to 'unichar' for %C in Objective-C contexts.

For most cases where a conversion specifier doesn't match an argument,
we usually guess that the conversion specifier is wrong. However, if
the argument is an integer type and the specifier is %C, it's likely
the user really did mean to print the integer as a character.

(This is more common than %c because there is no way to specify a unichar
literal -- you have to write an integer literal, such as '0x2603',
and then cast it to unichar.)

This does not change the behavior of %S, since there are fewer cases
where printing a literal Unicode *string* is necessary, but this could
easily be changed in the future.

<rdar://problem/11982013>

llvm-svn: 169400

11 years agoFormat strings: add more expression types that don't need parens to cast.
Jordan Rose [Wed, 5 Dec 2012 18:44:44 +0000 (18:44 +0000)]
Format strings: add more expression types that don't need parens to cast.

No functionality change (the test change is a comment only, and the new
functionality can't be tested using the current test).

llvm-svn: 169399

11 years agoFormat strings: a character literal should be printed with %c, not %d.
Jordan Rose [Wed, 5 Dec 2012 18:44:40 +0000 (18:44 +0000)]
Format strings: a character literal should be printed with %c, not %d.

The type of a character literal is 'int' in C, but if the user writes a
character /as/ a literal, we should assume they meant it to be a
character and not a numeric value, and thus offer %c as a correction
rather than %d.

There's a special case for multi-character literals (like 'MooV'), which
have implementation-defined value and usually cannot be printed with %c.
These still use %d as the suggestion.

In C++, the type of a character literal is 'char', and so this problem
doesn't exist.

<rdar://problem/12282316>

llvm-svn: 169398

11 years agoFormat strings: the correct conversion for 'char' is %c, not %d or %hhd.
Jordan Rose [Wed, 5 Dec 2012 18:44:37 +0000 (18:44 +0000)]
Format strings: the correct conversion for 'char' is %c, not %d or %hhd.

We tried to account for 'uint8_t' by saying that /typedefs/ of 'char'
should be corrected as %hhd rather than %c, but the condition was wrong.

llvm-svn: 169397

11 years agoTry to unbreak the build on hosts that don't transitively pull in a definition for...
Benjamin Kramer [Wed, 5 Dec 2012 18:31:11 +0000 (18:31 +0000)]
Try to unbreak the build on hosts that don't transitively pull in a definition for int64_t.

Also use the portable (ugly) format string macros, for MSVC compatibility.

llvm-svn: 169396

11 years agoRemove unused MachineInstr constructors.
Jakob Stoklund Olesen [Wed, 5 Dec 2012 18:27:39 +0000 (18:27 +0000)]
Remove unused MachineInstr constructors.

A MachineInstr can only ever be constructed by CreateMachineInstr() and
CloneMachineInstr(), and those factories don't use the removed
constructors.

llvm-svn: 169395

11 years agoCrash every time with new target logging is now fixed.
Greg Clayton [Wed, 5 Dec 2012 18:23:55 +0000 (18:23 +0000)]
Crash every time with new target logging is now fixed.

llvm-svn: 169394

11 years agoAdded a option to the disassembler to print immediates as hex.
Kevin Enderby [Wed, 5 Dec 2012 18:13:19 +0000 (18:13 +0000)]
Added a option to the disassembler to print immediates as hex.

This is for the lldb team so most of but not all of the values are
to be printed as hex with this option.  Some small values like the
scale in an X86 address were requested to printed in decimal
without the leading 0x.

There may be some tweaks need to places that may still be in
decimal that they want in hex.  Specially for arm.  I made my best
guess.  Any tweaks from here should be simple.

I also did the best I know now with help from the C++ gurus
creating the cleanest formatImm() utility function and containing
the changes.  But if someone has a better idea to make something
cleaner I'm all ears and game for changing the implementation.

rdar://8109283

llvm-svn: 169393

11 years ago[asan] drop the extension from asan tests (as the extension may be different)
Kostya Serebryany [Wed, 5 Dec 2012 17:56:54 +0000 (17:56 +0000)]
[asan] drop the extension from asan tests (as the extension may be different)

llvm-svn: 169392

11 years ago- Added calls to doInitialization/doFinalization to immutable passes
Pedro Artigas [Wed, 5 Dec 2012 17:12:22 +0000 (17:12 +0000)]
- Added calls to doInitialization/doFinalization to immutable passes
- fixed ordering of calls to doFinalization to be the reverse of the pass run order due to potential dependencies
- fixed machine module info to operate in the doInitialization/doFinalization model, also fixes some FIXMEs

reviewed by Evan Cheng <evan.cheng@apple.com>

llvm-svn: 169391

11 years agoRemove bad and useless enum to bool conversion.
Daniel Jasper [Wed, 5 Dec 2012 16:24:48 +0000 (16:24 +0000)]
Remove bad and useless enum to bool conversion.

llvm-svn: 169390