platform/upstream/llvm.git
10 years agoDebug Info: code clean up.
Manman Ren [Tue, 29 Oct 2013 23:14:15 +0000 (23:14 +0000)]
Debug Info: code clean up.

Use EmitLabelOffsetDifference for handling on darwin platform when
non-darwin platforms use EmitLabelPlusOffset.

Also fix a bug in EmitLabelOffsetDifference where the size is hard-coded
to 4 even though Size is passed in as an argument.

llvm-svn: 193660

10 years ago<rdar://problem/15296388>
Enrico Granata [Tue, 29 Oct 2013 23:04:29 +0000 (23:04 +0000)]
<rdar://problem/15296388>

Fix a crasher that would occur if one tried to read memory as characters of some size != 1, e.g.
x -f c -s 10  buffer

This commit tries to do the right thing and uses the byte-size as the number of elements, unless both are specified and the number of elements is != 1
In this latter case (e.g. x -f c -s 10 -c 3  buffer) one could multiply the two and read 30 characters, but it seems a stretch in mind reading.

llvm-svn: 193659

10 years agoDebug Info: support for DW_FORM_ref_addr.
Manman Ren [Tue, 29 Oct 2013 22:57:10 +0000 (22:57 +0000)]
Debug Info: support for DW_FORM_ref_addr.

To support ref_addr, we calculate the section offset of a DIE (i.e. offset
of a DIE from beginning of the debug info section). The Offset field in DIE
is currently CU-relative. To calculate the section offset, we add a
DebugInfoOffset field in CompileUnit to store the offset of a CU from beginning
of the debug info section. We set the value in DwarfUnits::computeSizeAndOffset
for each CompileUnit.

A helper function DIE::getCompileUnit is added to return the CU DIE that
the input DIE belongs to. We also add a map CUDieMap in DwarfDebug to help
finding the CU for a given CU DIE.

For a cross-referenced DIE, we first find the CU DIE it belongs to with
getCompileUnit, then we use CUDieMap to get the corresponding CU for the CU DIE.
Adding the section offset of the CU with the CU-relative offset of a DIE gives
us the seciton offset of the DIE.

We correctly emit ref_addr with relocation using EmitLabelPlusOffset when
doesDwarfUseRelocationsAcrossSections is true.

This commit handles the emission of DW_FORM_ref_addr when we have an attribute
with FORM_ref_addr. A follow-on patch will start using ref_addr when adding a
DIEEntry. This commit will be tested and verified in the follow-on patch.

Reviewed off-list by Eric, Thanks.

llvm-svn: 193658

10 years agoDebug Info: instead of calling addToContextOwner which constructs the context
Manman Ren [Tue, 29 Oct 2013 22:49:29 +0000 (22:49 +0000)]
Debug Info: instead of calling addToContextOwner which constructs the context
after the DIE creation, we construct the context first.

Ensure that we create the context before we create a type so that we can add
the newly created type to the parent. Remove last use of addToContextOwner
now that it's not needed.

We use createAndAddDIE to wrap around "new DIE(". Now all shareable DIEs
should be added to their parents right after the creation.

Reviewed off-list by Eric, Thanks.

llvm-svn: 193657

10 years agoStruct byval cleanup: add helper functions to reduce code duplication.
Manman Ren [Tue, 29 Oct 2013 22:27:32 +0000 (22:27 +0000)]
Struct byval cleanup: add helper functions to reduce code duplication.

Helper functions are added:
emitPostLd: emit a post-increment load operation with given size.
emitPostSt: emit a post-increment store operation with given size.

No functionality change.

llvm-svn: 193656

10 years ago[sanitizer] Intercept drand48_r, lrand48_r.
Evgeniy Stepanov [Tue, 29 Oct 2013 22:25:27 +0000 (22:25 +0000)]
[sanitizer] Intercept drand48_r, lrand48_r.

llvm-svn: 193655

10 years ago[msandr] Remove use of std::set in msandr client to avoid reentrancy issues.
Evgeniy Stepanov [Tue, 29 Oct 2013 22:19:25 +0000 (22:19 +0000)]
[msandr] Remove use of std::set in msandr client to avoid reentrancy issues.

Patch by Qin Zhao.

llvm-svn: 193654

10 years ago[stackprotector] Update the StackProtector pass to perform datalayout analysis.
Josh Magee [Tue, 29 Oct 2013 21:16:16 +0000 (21:16 +0000)]
[stackprotector] Update the StackProtector pass to perform datalayout analysis.

This modifies the pass to classify every SSP-triggering AllocaInst according to
an SSPLayoutKind (LargeArray, SmallArray, AddrOf).  This analysis is collected
by the pass and made available for use, but no other pass uses it yet.

The next patch will make use of this analysis in PEI and StackSlot
passes.  The end goal is to support ssp-strong stack layout rules.

WIP.

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

llvm-svn: 193653

10 years agoScopInfo: Add support for AssumedContext
Tobias Grosser [Tue, 29 Oct 2013 21:05:49 +0000 (21:05 +0000)]
ScopInfo: Add support for AssumedContext

When constructing a scop sometimes the exact representation of a statement or
condition would be very complex, but there is a common case which is a lot
simpler, but which is only valid under certain assumptions. The assumed context
records the assumptions taken during the construction of this scop and that need
to be code generated as a run-time test.

At the moment, we do not yet model any assumptions, but only added the
AssumedContext as well as the isl-ast generation support. As a next step,
this needs to be hooked up with the isl code generation.

if (1) /* run-time condition */
  {  /* optimized code */ }
else
  {  /* original code */ }

llvm-svn: 193652

10 years agoUpdate comment
Matt Arsenault [Tue, 29 Oct 2013 21:04:19 +0000 (21:04 +0000)]
Update comment

llvm-svn: 193651

10 years agoWorkaround MSVC 32-bit miscompile of getCondCodeAction.
Matt Arsenault [Tue, 29 Oct 2013 20:59:29 +0000 (20:59 +0000)]
Workaround MSVC 32-bit miscompile of getCondCodeAction.

Use 32-bit types for the array instead of 64. This should
generally be better anyway.

In optimized + assert builds, I saw a failure when a
cond code / type combination that is never set was loading
a non-zero value and hitting the != Promote assert.

It turns out when loading the 64-bit value to do the shift,
the assembly loads the 2 32-bit halves from non-consecutive
addresses. The address the second half of the loaded uint64_t
doesn't include the offset of the array in the struct. Instead
of being offset + 4, it's just + 4.

I'm not entirely sure why this wasn't observed before.
setCondCodeAction isn't heavily used by the in-tree targets,
and not with the higher valued vector SimpleValueTypes. Only
PPC is using one of the > 32 valued types, and that is probably
never used by anyone on a 32-bit MSVC compiled host.

I ran into this when upgrading LLVM versions, so I guess the
value loaded from the nonsense address happened to work out
before.

No test since I'm not really sure if / how it can be reproduced
with the current in tree targets, and it's not supposed to change
anything.

llvm-svn: 193650

10 years agoRemoving a switch statement that contains only a default label. This resolves an...
Aaron Ballman [Tue, 29 Oct 2013 20:40:52 +0000 (20:40 +0000)]
Removing a switch statement that contains only a default label.  This resolves an MSVC warning.  No functional change intended.

llvm-svn: 193649

10 years agoChanged tests_typestate to test_typestate for consistency.
Chris Wailes [Tue, 29 Oct 2013 20:28:41 +0000 (20:28 +0000)]
Changed tests_typestate to test_typestate for consistency.

llvm-svn: 193648

10 years ago[asan] Maybe fix test failures on lld bots.
Evgeniy Stepanov [Tue, 29 Oct 2013 20:06:12 +0000 (20:06 +0000)]
[asan] Maybe fix test failures on lld bots.

llvm-svn: 193647

10 years ago[PECOFF] Suppress startup message of background processes.
Rui Ueyama [Tue, 29 Oct 2013 19:52:44 +0000 (19:52 +0000)]
[PECOFF] Suppress startup message of background processes.

llvm-svn: 193646

10 years ago[sanitizer] Intercept sincos, remquo, lgamma, lgamma_r.
Evgeniy Stepanov [Tue, 29 Oct 2013 19:49:35 +0000 (19:49 +0000)]
[sanitizer] Intercept sincos, remquo, lgamma, lgamma_r.

llvm-svn: 193645

10 years agoAdd -lm to sanitizer link arguments.
Evgeniy Stepanov [Tue, 29 Oct 2013 19:48:47 +0000 (19:48 +0000)]
Add -lm to sanitizer link arguments.

We'll need to intercept a few function in libm.

llvm-svn: 193644

10 years ago[msandr] Add support for standalone test.
Evgeniy Stepanov [Tue, 29 Oct 2013 19:44:47 +0000 (19:44 +0000)]
[msandr] Add support for standalone test.

Add macro MSANDR_STANDALONE_TEST for standalone test without msan executables.

Patch by Qin Zhao.

llvm-svn: 193643

10 years agoAdd support for the separate version of /FI.
Rafael Espindola [Tue, 29 Oct 2013 19:42:01 +0000 (19:42 +0000)]
Add support for the separate version of /FI.

Patch by Jeff Muizelaar.

llvm-svn: 193642

10 years ago[mips] Align the stack to 16-bytes for mfp64.
Akira Hatanaka [Tue, 29 Oct 2013 19:29:03 +0000 (19:29 +0000)]
[mips] Align the stack to 16-bytes for mfp64.

llvm-svn: 193641

10 years ago[mips] Align the stack to 16-bytes for -mfp64.
Akira Hatanaka [Tue, 29 Oct 2013 19:00:35 +0000 (19:00 +0000)]
[mips] Align the stack to 16-bytes for -mfp64.

llvm-svn: 193640

10 years ago[tsan] Fix unused variable warnings.
Evgeniy Stepanov [Tue, 29 Oct 2013 18:44:52 +0000 (18:44 +0000)]
[tsan] Fix unused variable warnings.

llvm-svn: 193639

10 years ago[mips] Use the distance between the current argument's starting address and
Akira Hatanaka [Tue, 29 Oct 2013 18:41:15 +0000 (18:41 +0000)]
[mips] Use the distance between the current argument's starting address and
the previous argument's ending address to compute the type of the padding
argument.

No intended functionality change.

llvm-svn: 193638

10 years agoRemove declared but not implemented function.
Rafael Espindola [Tue, 29 Oct 2013 18:31:14 +0000 (18:31 +0000)]
Remove declared but not implemented function.

llvm-svn: 193637

10 years ago[mips] Move setDescriptionString to base class MipsTargetInfoBase and call it
Akira Hatanaka [Tue, 29 Oct 2013 18:30:33 +0000 (18:30 +0000)]
[mips] Move setDescriptionString to base class MipsTargetInfoBase and call it
at the end of handleTargetFeatures.

No intended functionality change.

llvm-svn: 193636

10 years ago[asan] Fix build.
Evgeniy Stepanov [Tue, 29 Oct 2013 18:29:39 +0000 (18:29 +0000)]
[asan] Fix build.

llvm-svn: 193635

10 years ago[sanitizer] Fix build warnings.
Evgeniy Stepanov [Tue, 29 Oct 2013 18:24:06 +0000 (18:24 +0000)]
[sanitizer] Fix build warnings.

llvm-svn: 193634

10 years ago[sanitizer] Ptrace syscall handler.
Evgeniy Stepanov [Tue, 29 Oct 2013 17:59:45 +0000 (17:59 +0000)]
[sanitizer] Ptrace syscall handler.

llvm-svn: 193633

10 years agoFix common typos in the docs.
Benjamin Kramer [Tue, 29 Oct 2013 17:53:27 +0000 (17:53 +0000)]
Fix common typos in the docs.

llvm-svn: 193632

10 years agoFixing an issue in yesterday's dynamic type changes where we would not craft a valid...
Enrico Granata [Tue, 29 Oct 2013 17:42:02 +0000 (17:42 +0000)]
Fixing an issue in yesterday's dynamic type changes where we would not craft a valid SBType given debug information
Added a test case to help us detect regression in this realm

llvm-svn: 193631

10 years agoMove getSymbol to TargetLoweringObjectFile.
Rafael Espindola [Tue, 29 Oct 2013 17:28:26 +0000 (17:28 +0000)]
Move getSymbol to TargetLoweringObjectFile.

This allows constructing a Mangler with just a TargetMachine.

llvm-svn: 193630

10 years agoDebug Info: clean up testing case.
Manman Ren [Tue, 29 Oct 2013 17:27:14 +0000 (17:27 +0000)]
Debug Info: clean up testing case.

Add a tag before the name attribute for readability. Use CHECK-NEXT
instead of CHECK-NOT followed by a CHECK. Add new lines to separate checking
of different DIEs.

llvm-svn: 193629

10 years agoFixing TestAnonymous to build dwarf where it says it will.
Andrew Kaylor [Tue, 29 Oct 2013 17:09:59 +0000 (17:09 +0000)]
Fixing TestAnonymous to build dwarf where it says it will.

llvm-svn: 193628

10 years agoAdd a helper getSymbol to AsmPrinter.
Rafael Espindola [Tue, 29 Oct 2013 17:07:16 +0000 (17:07 +0000)]
Add a helper getSymbol to AsmPrinter.

llvm-svn: 193627

10 years agoadd test cases for frameaddr and returnaddr for aarch64
Weiming Zhao [Tue, 29 Oct 2013 17:01:29 +0000 (17:01 +0000)]
add test cases for frameaddr and returnaddr for aarch64

llvm-svn: 193626

10 years ago[AArch64] Implement FrameAddr and ReturnAddr
Weiming Zhao [Tue, 29 Oct 2013 17:00:25 +0000 (17:00 +0000)]
[AArch64] Implement FrameAddr and ReturnAddr

Fixes PR17690

llvm-svn: 193625

10 years ago[ARM] Make sure HasCRC is initialized to false in Subtarget.
Amara Emerson [Tue, 29 Oct 2013 16:54:52 +0000 (16:54 +0000)]
[ARM] Make sure HasCRC is initialized to false in Subtarget.

llvm-svn: 193624

10 years agoSupport for microMIPS jump instructions
Zoran Jovanovic [Tue, 29 Oct 2013 16:38:59 +0000 (16:38 +0000)]
Support for microMIPS jump instructions

llvm-svn: 193623

10 years agoR600: Add Sea Islands GPUs
Tom Stellard [Tue, 29 Oct 2013 16:38:29 +0000 (16:38 +0000)]
R600: Add Sea Islands GPUs

llvm-svn: 193622

10 years agoR600/SI: Add compute support for CI v2
Tom Stellard [Tue, 29 Oct 2013 16:37:28 +0000 (16:37 +0000)]
R600/SI: Add compute support for CI v2

v2:
  - Fix LDS size calculation

Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
llvm-svn: 193621

10 years agoR600: Expand vector FSQRT ops
Tom Stellard [Tue, 29 Oct 2013 16:37:20 +0000 (16:37 +0000)]
R600: Expand vector FSQRT ops

llvm-svn: 193620

10 years agoDWARF parser: propery handle DW_FORM_ref_sig8 and fix Windows build.
Alexey Samsonov [Tue, 29 Oct 2013 16:32:19 +0000 (16:32 +0000)]
DWARF parser: propery handle DW_FORM_ref_sig8 and fix Windows build.

Based on D2050 by Timur Iskhodzhanov.

llvm-svn: 193619

10 years agoThe asm printer has a mangler. Use it.
Rafael Espindola [Tue, 29 Oct 2013 16:24:21 +0000 (16:24 +0000)]
The asm printer has a mangler. Use it.

llvm-svn: 193618

10 years agoThe AsmPrinter has a Mangler. Use it.
Rafael Espindola [Tue, 29 Oct 2013 16:18:15 +0000 (16:18 +0000)]
The AsmPrinter has a Mangler. Use it.

llvm-svn: 193617

10 years agoThe asm printer has a mangler. Don't keep a second pointer to it.
Rafael Espindola [Tue, 29 Oct 2013 16:11:22 +0000 (16:11 +0000)]
The asm printer has a mangler. Don't keep a second pointer to it.

llvm-svn: 193616

10 years ago[asan] increase the max malloc size from 8Gb to 64Gb
Kostya Serebryany [Tue, 29 Oct 2013 15:16:54 +0000 (15:16 +0000)]
[asan] increase the max malloc size from 8Gb to 64Gb

llvm-svn: 193615

10 years agoclang-format: Option to control spacing in template argument lists.
Daniel Jasper [Tue, 29 Oct 2013 14:52:02 +0000 (14:52 +0000)]
clang-format: Option to control spacing in template argument lists.

Same as SpacesInParentheses, this option allows adding a space inside
the '<' and '>' of a template parameter list.

Patch by Christopher Olsen.

This fixes llvm.org/PR17301.

llvm-svn: 193614

10 years agoResubmit "Refactor DynTypedMatcher into a value type class, just like Matcher<T>."
Samuel Benzaquen [Tue, 29 Oct 2013 14:37:15 +0000 (14:37 +0000)]
Resubmit "Refactor DynTypedMatcher into a value type class, just like Matcher<T>."

Summary: This resubmits r193100, plus a fix for a breakage with MSVC.

Reviewers: klimek, rnk

CC: cfe-commits, revane
Differential Revision: http://llvm-reviews.chandlerc.com/D2005

llvm-svn: 193613

10 years agoSupport names like llvm-ar-3.4 and llvm-ranlib-3.4.
Rafael Espindola [Tue, 29 Oct 2013 14:25:43 +0000 (14:25 +0000)]
Support names like llvm-ar-3.4 and llvm-ranlib-3.4.

They are used in some packages. For example:
http://packages.ubuntu.com/saucy/i386/llvm-3.4/filelist

This fixes pr17721.

llvm-svn: 193612

10 years agoTest cleanup for v8 instructions
Bernard Ogden [Tue, 29 Oct 2013 14:16:09 +0000 (14:16 +0000)]
Test cleanup for v8 instructions

Add some missing tests, factor out a test not specific to v8 into
its own file.

llvm-svn: 193611

10 years agoFix an assertion when handling a custom case of virtual inheritance; also reduce...
Timur Iskhodzhanov [Tue, 29 Oct 2013 14:13:45 +0000 (14:13 +0000)]
Fix an assertion when handling a custom case of virtual inheritance; also reduce code duplication

llvm-svn: 193610

10 years agoClarify that GlobalVariables definitions must have an initializer.
Rafael Espindola [Tue, 29 Oct 2013 13:44:11 +0000 (13:44 +0000)]
Clarify that GlobalVariables definitions must have an initializer.

llvm-svn: 193609

10 years agoAdd a missing lit-test expectation (forgotten to write initially?)
Timur Iskhodzhanov [Tue, 29 Oct 2013 13:29:32 +0000 (13:29 +0000)]
Add a missing lit-test expectation (forgotten to write initially?)

llvm-svn: 193608

10 years agoUse LLVMLibsOptions intead of LDFLAGS when setting the libclang soname. This allows...
Sylvestre Ledru [Tue, 29 Oct 2013 13:01:41 +0000 (13:01 +0000)]
Use LLVMLibsOptions intead of LDFLAGS when setting the libclang soname. This allows 'make LDFLAGS=foo' to be set correctly (and matches the way it is done with libllvm and liblldb)

llvm-svn: 193607

10 years agoARM: fix AST for __builtin_arm_strex call
Tim Northover [Tue, 29 Oct 2013 12:32:58 +0000 (12:32 +0000)]
ARM: fix AST for __builtin_arm_strex call

The AST was constructed so that this builtin returned the default BoolTy and
since I'd opted for custom SemaChecking, I should have set it properly at that
point.

This caused an assertion failure when the types didn't match up with what we
generated. This makes it return an IntTy, which is as good as anything.

llvm-svn: 193606

10 years agoclang-format: Fix overloaded operator for global-scoped conversions.
Daniel Jasper [Tue, 29 Oct 2013 12:24:23 +0000 (12:24 +0000)]
clang-format: Fix overloaded operator for global-scoped conversions.

Before:
  operator::A();

After:
  operator ::A();

llvm-svn: 193605

10 years agoQuick-fix DebugInfo build on Windows
Timur Iskhodzhanov [Tue, 29 Oct 2013 12:13:22 +0000 (12:13 +0000)]
Quick-fix DebugInfo build on Windows

MSVC can't comprehend
  template<typename T, size_t N>
  ArrayRef<T> makeArrayRef(const T (&Arr)[N]) {
    return ArrayRef<T>(Arr);
  }
if Arr is
  static const uint8_t sizes[];
declared in a templated and defined a few lines later.

I'll send a proper fix (i.e. get rid of unnecessary templates) for review soon.

llvm-svn: 193604

10 years agoFix a typo in my family name. Tobias: ;)
Sylvestre Ledru [Tue, 29 Oct 2013 11:05:18 +0000 (11:05 +0000)]
Fix a typo in my family name. Tobias: ;)

llvm-svn: 193603

10 years agotsan/asan: support pthread_setname_np to set thread names
Dmitry Vyukov [Tue, 29 Oct 2013 10:30:39 +0000 (10:30 +0000)]
tsan/asan: support pthread_setname_np to set thread names

llvm-svn: 193602

10 years agoTeach the driver to not try to use 'lib32' multilib spellings on ARM
Chandler Carruth [Tue, 29 Oct 2013 10:27:30 +0000 (10:27 +0000)]
Teach the driver to not try to use 'lib32' multilib spellings on ARM
which doesn't use that multilib. As a consequence, fix Clang's support
for cross compiling environments that were relying on this quirk to
ensure the correct library search path ordering.

This also re-instates the new test cases from Rafael's r193528 for
cross-compiling to ARM on Ubuntu 13.10 without any of the changes to the
existing test cases (they were no longer needed).

This solution was the result of a lot of IRC debugging and trying to
understand *exactly* what quirk was being relied upon. It took some time
for me to figure out that it was the use of 'lib32' is a multilib that
was throwing a wrench in the works.

In case you are thinking that its silly to use a multilib of 'lib' at
all, entertainingly, GCC does so as well (you can see it with the
.../lib/../lib/crt1.o pattern it uses), and the 2-phase sequence of
search paths (multilib followed by non-multilib) has observable (if
dubious) consequences. =/ Yuck.

llvm-svn: 193601

10 years agoARM: Add -m[no-]crc to dis/enable CRC subtargetfeature from clang
Bernard Ogden [Tue, 29 Oct 2013 09:47:51 +0000 (09:47 +0000)]
ARM: Add -m[no-]crc to dis/enable CRC subtargetfeature from clang

Allow users to disable or enable CRC subtarget feature.

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

llvm-svn: 193600

10 years agoARM: Add subtarget feature for CRC
Bernard Ogden [Tue, 29 Oct 2013 09:47:35 +0000 (09:47 +0000)]
ARM: Add subtarget feature for CRC

Adds a subtarget feature for the CRC instructions (optional in v8-A) to the ARM (32-bit) backend.

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

llvm-svn: 193599

10 years agoFix misapplied patch in r193597
Anders Waldenborg [Tue, 29 Oct 2013 09:37:28 +0000 (09:37 +0000)]
Fix misapplied patch in r193597

Sorry Peter Zotov, entirely my fault.

llvm-svn: 193598

10 years agollvm-c: Make LLVM{Get,Set}Alignment work on {Load,Store}Inst too
Anders Waldenborg [Tue, 29 Oct 2013 09:02:02 +0000 (09:02 +0000)]
llvm-c: Make LLVM{Get,Set}Alignment work on {Load,Store}Inst too

Patch by Peter Zotov

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

llvm-svn: 193597

10 years agoDoh, got this turned around. This is in fact the consistent ordering.
Chandler Carruth [Tue, 29 Oct 2013 08:57:33 +0000 (08:57 +0000)]
Doh, got this turned around. This is in fact the consistent ordering.

llvm-svn: 193596

10 years agoClean up the deeply misleading name of the "MultiLibSuffix". This is
Chandler Carruth [Tue, 29 Oct 2013 08:53:03 +0000 (08:53 +0000)]
Clean up the deeply misleading name of the "MultiLibSuffix". This is
actually a MIPS-only hack to shim in random ABI directory suffixes in
numerous places throughout the toolchain's path search. It shouldn't
appear to be anything more general or useful.

llvm-svn: 193595

10 years agoUse Rewriter::overwriteChangedFiles() directly
Alp Toker [Tue, 29 Oct 2013 08:32:41 +0000 (08:32 +0000)]
Use Rewriter::overwriteChangedFiles() directly

This replaces the custom code in RefactoringTool::saveRewrittenFiles() which
lacked atomic file saving and error diagnostics, resolving an old FIXME from
r157331.

Landing this time with the proper return code, plus a very unhelpful comment
cleared up.

Rubber-stamped by Manuel Klimek.

llvm-svn: 193594

10 years agoAArch64: add 'a' inline asm operand modifier
Tim Northover [Tue, 29 Oct 2013 08:22:33 +0000 (08:22 +0000)]
AArch64: add 'a' inline asm operand modifier

This is used in the Linux kernel, and effectively just means "print an
address".

llvm-svn: 193593

10 years agoRevert "Use Rewriter::overwriteChangedFiles() directly"
Alp Toker [Tue, 29 Oct 2013 07:56:03 +0000 (07:56 +0000)]
Revert "Use Rewriter::overwriteChangedFiles() directly"

This wasn't ready for prime time yet, seems to break tools-extra.

This reverts commit r193590.

llvm-svn: 193592

10 years agoRemove obsolete RewriteBuffer comment
Alp Toker [Tue, 29 Oct 2013 07:47:57 +0000 (07:47 +0000)]
Remove obsolete RewriteBuffer comment

The string buffer in question was replaced with RewriteRope in r43884
back in 2007.

llvm-svn: 193591

10 years agoUse Rewriter::overwriteChangedFiles() directly
Alp Toker [Tue, 29 Oct 2013 07:47:49 +0000 (07:47 +0000)]
Use Rewriter::overwriteChangedFiles() directly

The old code in RefactoringTool::saveRewrittenFiles() lacked
atomic moves and diagnostics and had FIXME to this effect.

Rubber-stamped by Manuel Klimek.

llvm-svn: 193590

10 years agoDebug Info: instead of calling addToContextOwner which constructs the context
Manman Ren [Tue, 29 Oct 2013 05:49:41 +0000 (05:49 +0000)]
Debug Info: instead of calling addToContextOwner which constructs the context
after the DIE creation, we construct the context first.

This touches creation of namespaces and global variables. The purpose is to
handle all DIE creations similarly: constructs the context first, then creates
the DIE and immediately adds the DIE to its parent.

We use createAndAddDIE to wrap around "new DIE(".

llvm-svn: 193589

10 years ago[FileToMutable] Garbage collect unused private member
Shankar Easwaran [Tue, 29 Oct 2013 05:33:52 +0000 (05:33 +0000)]
[FileToMutable] Garbage collect unused private member

llvm-svn: 193588

10 years ago[Sanitizer] Simplify StackTrace::PrintStack interface: prefer common flags to turn...
Alexey Samsonov [Tue, 29 Oct 2013 05:31:25 +0000 (05:31 +0000)]
[Sanitizer] Simplify StackTrace::PrintStack interface: prefer common flags to turn on/off the symbolization

llvm-svn: 193587

10 years ago[test] Fix a test failure, this test is only applicable in debug mode
Shankar Easwaran [Tue, 29 Oct 2013 05:26:49 +0000 (05:26 +0000)]
[test] Fix a test failure, this test is only applicable in debug mode

llvm-svn: 193586

10 years ago[PassManager] add ReaderWriter{Native,YAML} to the Driver.
Shankar Easwaran [Tue, 29 Oct 2013 05:12:14 +0000 (05:12 +0000)]
[PassManager] add ReaderWriter{Native,YAML} to the Driver.

Enable this for the following flavors

a) core
b) gnu
c) darwin

Its disabled for the flavor PECOFF. Convenient markers are added with FIXME
comments in the Driver that would be removed and code removed from each flavor.

llvm-svn: 193585

10 years agoFix spelling.
Rui Ueyama [Tue, 29 Oct 2013 04:54:50 +0000 (04:54 +0000)]
Fix spelling.

llvm-svn: 193584

10 years agoAdd missing attributes [[gnu::no_sanitize_address]] and
Nick Lewycky [Tue, 29 Oct 2013 03:54:41 +0000 (03:54 +0000)]
Add missing attributes [[gnu::no_sanitize_address]] and
[[gnu::no_address_safety_analysis]].

llvm-svn: 193583

10 years agoTreat [[gnu::__const]] the same as [[gnu::const]]. GCC's tokenizer can't tell
Nick Lewycky [Tue, 29 Oct 2013 03:33:57 +0000 (03:33 +0000)]
Treat [[gnu::__const]] the same as [[gnu::const]]. GCC's tokenizer can't tell
the difference.

llvm-svn: 193582

10 years ago[msan] Intercept shmat.
Evgeniy Stepanov [Tue, 29 Oct 2013 02:48:49 +0000 (02:48 +0000)]
[msan] Intercept shmat.

llvm-svn: 193581

10 years agoAdd llvm/test/Transforms/SLPVectorizer/ARM/lit.local.cfg. Tests there require ARM...
NAKAMURA Takumi [Tue, 29 Oct 2013 02:46:00 +0000 (02:46 +0000)]
Add llvm/test/Transforms/SLPVectorizer/ARM/lit.local.cfg. Tests there require ARM in targets.

llvm-svn: 193580

10 years agoFix "existant" typos
Alp Toker [Tue, 29 Oct 2013 02:35:28 +0000 (02:35 +0000)]
Fix "existant" typos

llvm-svn: 193579

10 years agoFix "existant" typos
Alp Toker [Tue, 29 Oct 2013 02:34:44 +0000 (02:34 +0000)]
Fix "existant" typos

llvm-svn: 193578

10 years agoCleanup comments and braces. No functionality changed, just trying to
Chandler Carruth [Tue, 29 Oct 2013 02:27:56 +0000 (02:27 +0000)]
Cleanup comments and braces. No functionality changed, just trying to
record what is *actually* going on here as the comments existing in the
code are confusing at best, and in places outright misleading.

The API is even more misleading. Yay.

llvm-svn: 193577

10 years agoClean up.
Richard Smith [Tue, 29 Oct 2013 01:44:23 +0000 (01:44 +0000)]
Clean up.

llvm-svn: 193576

10 years agoDWARFFormValue.cpp: Appease gcc to give explicit constructors.
NAKAMURA Takumi [Tue, 29 Oct 2013 01:43:05 +0000 (01:43 +0000)]
DWARFFormValue.cpp: Appease gcc to give explicit constructors.

  error: conversion from `const uint8_t*' to non-scalar type `llvm::ArrayRef<unsigned char>' requested

llvm-svn: 193575

10 years agoARM cost model: Unaligned vectorized double stores are expensive
Arnold Schwaighofer [Tue, 29 Oct 2013 01:33:57 +0000 (01:33 +0000)]
ARM cost model: Unaligned vectorized double stores are expensive

Updated a test case that assumed that <2 x double> would vectorize to use
<4 x float>.

radar://15338229

llvm-svn: 193574

10 years agoARM cost model: Account for zero cost scalar SROA instructions
Arnold Schwaighofer [Tue, 29 Oct 2013 01:33:53 +0000 (01:33 +0000)]
ARM cost model: Account for zero cost scalar SROA instructions

By vectorizing a series of srl, or, ... instructions we have obfuscated the
intention so much that the backend does not know how to fold this code away.

radar://15336950

llvm-svn: 193573

10 years agoSLPVectorizer: Use vector type for vectorized memory operations
Arnold Schwaighofer [Tue, 29 Oct 2013 01:33:50 +0000 (01:33 +0000)]
SLPVectorizer: Use vector type for vectorized memory operations

No test case, because with the current cost model we don't see a difference.
An upcoming ARM memory cost model change will expose and test this bug.

radar://15332579

llvm-svn: 193572

10 years agoCleaning up comments in lli
Andrew Kaylor [Tue, 29 Oct 2013 01:33:14 +0000 (01:33 +0000)]
Cleaning up comments in lli

llvm-svn: 193571

10 years agoAdding a workaround for __main linking with remote lli and Cygwin/MinGW
Andrew Kaylor [Tue, 29 Oct 2013 01:29:56 +0000 (01:29 +0000)]
Adding a workaround for __main linking with remote lli and Cygwin/MinGW

llvm-svn: 193570

10 years agoMove the STT_FILE symbols out of the normal symbol table processing for
Joerg Sonnenberger [Tue, 29 Oct 2013 01:06:17 +0000 (01:06 +0000)]
Move the STT_FILE symbols out of the normal symbol table processing for
ELF. They can overlap with the other symbols, e.g. if a source file
"foo.c" contains a function "foo" with a static variable "c".

llvm-svn: 193569

10 years agoDebug Info: use createAndAddDIE to wrap around "new DIE" in DwarfDebug.
Manman Ren [Tue, 29 Oct 2013 01:03:01 +0000 (01:03 +0000)]
Debug Info: use createAndAddDIE to wrap around "new DIE" in DwarfDebug.

This commit ensures DIEs are constructed within a compile unit and
immediately added to their parents.

Reviewed off-list by Eric.

llvm-svn: 193568

10 years agoDebug Info: use createAndAddDIE for newly-created Subprogram DIEs.
Manman Ren [Tue, 29 Oct 2013 00:58:04 +0000 (00:58 +0000)]
Debug Info: use createAndAddDIE for newly-created Subprogram DIEs.

More patches will be submitted to convert "new DIE(" to use createAddAndDIE in
DwarfCompileUnit.cpp. This will simplify implementation of addDIEEntry where
we have to decide between ref4 and ref_addr, because DIEs that can be shared
across CU will be added to a CU already.

Reviewed off-list by Eric.

llvm-svn: 193567

10 years agoDebug Info: add a helper function createAndAddDIE.
Manman Ren [Tue, 29 Oct 2013 00:53:03 +0000 (00:53 +0000)]
Debug Info: add a helper function createAndAddDIE.

It wraps around "new DIE(" and handles the bookkeeping part of the newly-created
DIE. It adds the DIE to its parent, and calls insertDIE if necessary. It makes
sure that bookkeeping is done at the earliest time and we should not see
parentless DIEs if all constructions of DIEs go through this helper function.

Later on, we can use an allocator for DIE allocation, and will only need to
change createAndAddDIE instead of modifying all the "new DIE(".

Reviewed off-list by Eric.

llvm-svn: 193566

10 years ago[PECOFF] Fix __ImageBase symbol.
Rui Ueyama [Tue, 29 Oct 2013 00:33:34 +0000 (00:33 +0000)]
[PECOFF] Fix __ImageBase symbol.

__ImageBase is an absolute symbol whose address is the same as the image base
address. What we did before this patch was to create __ImageBase symbol as a
symbol whose *contents* (not location) is the image base address, which is
clearly wrong.

llvm-svn: 193565

10 years ago<rdar://problem/15144376>
Enrico Granata [Tue, 29 Oct 2013 00:28:35 +0000 (00:28 +0000)]
<rdar://problem/15144376>

This commit reimplements the TypeImpl class (the class that backs SBType) in terms of a static,dynamic type pair

This is useful for those cases when the dynamic type of an ObjC variable can only be obtained in terms of an "hollow" type with no ivars
In that case, we could either go with the static type (+iVar information) or with the dynamic type (+inheritance chain)

With the new TypeImpl implementation, we try to combine these two sources of information in order to extract as much information as possible
This should improve the functionality of tools that are using the SBType API to do extensive dynamic type inspection

llvm-svn: 193564

10 years agoMerge DWARFDIE::extractFast and DWARFDIE::extract into one function.
Alexey Samsonov [Mon, 28 Oct 2013 23:58:58 +0000 (23:58 +0000)]
Merge DWARFDIE::extractFast and DWARFDIE::extract into one function.

Complicated CU-DIE-specific logic in the latter was never used,
and it makes sense to have safety checks for broken dwarf in the former.

llvm-svn: 193563

10 years agoRenaming MCJIT .ir files to .ll and moving them to Inputs
Andrew Kaylor [Mon, 28 Oct 2013 23:51:03 +0000 (23:51 +0000)]
Renaming MCJIT .ir files to .ll and moving them to Inputs

llvm-svn: 193562

10 years agoSwitch %clang -cc1 tests to %clang_cc1
Alp Toker [Mon, 28 Oct 2013 23:47:09 +0000 (23:47 +0000)]
Switch %clang -cc1 tests to %clang_cc1

llvm-svn: 193561