platform/upstream/llvm.git
11 years ago[ELF] Implement GOTPCREL for defined atoms.
Michael J. Spencer [Tue, 5 Feb 2013 19:14:28 +0000 (19:14 +0000)]
[ELF] Implement GOTPCREL for defined atoms.

llvm-svn: 174426

11 years ago[ELF] Replace local dynamic tls access with direct access.
Michael J. Spencer [Tue, 5 Feb 2013 19:14:07 +0000 (19:14 +0000)]
[ELF] Replace local dynamic tls access with direct access.

llvm-svn: 174425

11 years agoConstantFolding: Fix a crash when encoutering a truncating inttoptr.
Benjamin Kramer [Tue, 5 Feb 2013 19:04:36 +0000 (19:04 +0000)]
ConstantFolding: Fix a crash when encoutering a truncating inttoptr.

This was introduced in r173293.

llvm-svn: 174424

11 years agoLoop Vectorizer: Refactor code to compute vectorized memory instruction cost
Arnold Schwaighofer [Tue, 5 Feb 2013 18:46:41 +0000 (18:46 +0000)]
Loop Vectorizer: Refactor code to compute vectorized memory instruction cost

Introduce a helper class that computes the cost of memory access instructions.
No functionality change intended.

llvm-svn: 174422

11 years ago<rdar://problem/12866706>
Greg Clayton [Tue, 5 Feb 2013 18:40:36 +0000 (18:40 +0000)]
<rdar://problem/12866706>

Removed asserts and replaced them with conditional code and appropriate errors that prompt for a bug to be filed.

llvm-svn: 174420

11 years agoHexagon: Add testcase for post-increment store instructions.
Jyotsna Verma [Tue, 5 Feb 2013 18:23:51 +0000 (18:23 +0000)]
Hexagon: Add testcase for post-increment store instructions.

llvm-svn: 174419

11 years ago[SjLj Prepare] When demoting an invoke instructions to the stack, if the normal
Chad Rosier [Tue, 5 Feb 2013 18:23:10 +0000 (18:23 +0000)]
[SjLj Prepare] When demoting an invoke instructions to the stack, if the normal
edge is critical, then split it so we can insert the store.
rdar://13126179

llvm-svn: 174418

11 years agoRemove liveout lists from MachineRegisterInfo.
Jakob Stoklund Olesen [Tue, 5 Feb 2013 18:21:56 +0000 (18:21 +0000)]
Remove liveout lists from MachineRegisterInfo.

All targets are now adding return value registers as implicit uses on
return instructions, and there is no longer a need for the live out
lists.

llvm-svn: 174417

11 years agoRemove special-casing of return blocks for liveness.
Jakob Stoklund Olesen [Tue, 5 Feb 2013 18:21:52 +0000 (18:21 +0000)]
Remove special-casing of return blocks for liveness.

Now that return value registers are return instruction uses, there is no
need for special treatment of return blocks.

llvm-svn: 174416

11 years agoMove MRI liveouts to AArch64 return instructions.
Jakob Stoklund Olesen [Tue, 5 Feb 2013 18:21:49 +0000 (18:21 +0000)]
Move MRI liveouts to AArch64 return instructions.

llvm-svn: 174415

11 years agoMove MRI liveouts to XCore return instructions.
Jakob Stoklund Olesen [Tue, 5 Feb 2013 18:21:46 +0000 (18:21 +0000)]
Move MRI liveouts to XCore return instructions.

llvm-svn: 174414

11 years agoMove MRI liveouts to Sparc return instructions.
Jakob Stoklund Olesen [Tue, 5 Feb 2013 18:16:58 +0000 (18:16 +0000)]
Move MRI liveouts to Sparc return instructions.

llvm-svn: 174413

11 years agoHexagon: Use multiclass for absolute addressing mode stores.
Jyotsna Verma [Tue, 5 Feb 2013 18:15:34 +0000 (18:15 +0000)]
Hexagon: Use multiclass for absolute addressing mode stores.

llvm-svn: 174412

11 years agoMove MRI liveouts to MSP430 return instructions.
Jakob Stoklund Olesen [Tue, 5 Feb 2013 18:12:06 +0000 (18:12 +0000)]
Move MRI liveouts to MSP430 return instructions.

llvm-svn: 174411

11 years agoMove MRI liveouts to Mips return instructions.
Jakob Stoklund Olesen [Tue, 5 Feb 2013 18:12:03 +0000 (18:12 +0000)]
Move MRI liveouts to Mips return instructions.

llvm-svn: 174410

11 years agoMove MRI liveouts to PowerPC return instructions.
Jakob Stoklund Olesen [Tue, 5 Feb 2013 18:12:00 +0000 (18:12 +0000)]
Move MRI liveouts to PowerPC return instructions.

llvm-svn: 174409

11 years agoMove MRI liveouts to MBlaze return instructions.
Jakob Stoklund Olesen [Tue, 5 Feb 2013 18:08:45 +0000 (18:08 +0000)]
Move MRI liveouts to MBlaze return instructions.

llvm-svn: 174408

11 years agoMove MRI liveouts to Hexagon return instructions.
Jakob Stoklund Olesen [Tue, 5 Feb 2013 18:08:43 +0000 (18:08 +0000)]
Move MRI liveouts to Hexagon return instructions.

llvm-svn: 174407

11 years agoMove MRI liveouts to ARM return instructions.
Jakob Stoklund Olesen [Tue, 5 Feb 2013 18:08:40 +0000 (18:08 +0000)]
Move MRI liveouts to ARM return instructions.

llvm-svn: 174406

11 years agoAdd a test case for PR14750.
Jakob Stoklund Olesen [Tue, 5 Feb 2013 18:04:15 +0000 (18:04 +0000)]
Add a test case for PR14750.

This was fixed by r174402.

llvm-svn: 174405

11 years ago[tests] Add a 'use_system_lib' parameter.
Daniel Dunbar [Tue, 5 Feb 2013 18:03:49 +0000 (18:03 +0000)]
[tests] Add a 'use_system_lib' parameter.

 - This controls whether to execute against the locally built library or
   not. The default is currently True which maps to what was already being done
   by default.

 - I'd appreciate it if someone can implement the proper handling of this flag
   on linux, I no longer remember the details of its .so handling.

llvm-svn: 174404

11 years agoCodeGen: clang-format goodness
Tobias Grosser [Tue, 5 Feb 2013 18:01:29 +0000 (18:01 +0000)]
CodeGen: clang-format goodness

The changed files are not yet clang-format clean, but we are getting close.

llvm-svn: 174403

11 years agoMove MRI liveouts to X86 return instructions.
Jakob Stoklund Olesen [Tue, 5 Feb 2013 17:59:48 +0000 (17:59 +0000)]
Move MRI liveouts to X86 return instructions.

llvm-svn: 174402

11 years ago[MC] Bundle alignment: Invalidate relaxed fragments
Derek Schuff [Tue, 5 Feb 2013 17:55:27 +0000 (17:55 +0000)]
[MC] Bundle alignment: Invalidate relaxed fragments

Currently, when a fragment is relaxed, its size is modified, but its
offset is not (it gets laid out as a side effect of checking whether
it needs relaxation), then all subsequent fragments are invalidated
because their offsets need to change. When bundling is enabled,
relaxed fragments need to get laid out again, because the increase in
size may push it over a bundle boundary. So instead of only
invalidating subsequent fragments, also invalidate the fragment that
gets relaxed, which causes it to get laid out again.

This patch also fixes some trailing whitespace and fixes the
bundling-related debug output of MCFragments.

llvm-svn: 174401

11 years agoDon't use MRI liveouts in R600.
Jakob Stoklund Olesen [Tue, 5 Feb 2013 17:53:52 +0000 (17:53 +0000)]
Don't use MRI liveouts in R600.

Something very strange is going on with the output registers in this
target. Its ISelLowering code is inserting dangling CopyToReg nodes,
hoping that those physregs won't get clobbered before the RETURN.

This patch adds the output registers as implicit uses on RETURN
instructions in the custom emission pass. I'd much prefer to have those
CopyToReg nodes glued to the RETURNs, but I don't see how.

llvm-svn: 174400

11 years agoAvoid using MRI::liveout_iterator for computing VRSAVEs.
Jakob Stoklund Olesen [Tue, 5 Feb 2013 17:40:36 +0000 (17:40 +0000)]
Avoid using MRI::liveout_iterator for computing VRSAVEs.

The liveout lists are about to be removed from MRI, this is the only
place they were used after register allocation.

Get the live out V registers directly from the return instructions
instead.

llvm-svn: 174399

11 years ago[analyzer] Add a doc describing the internals of RegionStore.
Jordan Rose [Tue, 5 Feb 2013 17:31:34 +0000 (17:31 +0000)]
[analyzer] Add a doc describing the internals of RegionStore.

This is a text file with Markdown-ish formatting because we haven't decided
where analyzer internal documents should go, but it's probably better to
have this in source control than sitting on my local drive forever.

llvm-svn: 174398

11 years agoSet the deployment target for Apple llvmCore builds. <rdar://problem/12712431>
Bob Wilson [Tue, 5 Feb 2013 17:29:03 +0000 (17:29 +0000)]
Set the deployment target for Apple llvmCore builds. <rdar://problem/12712431>

llvm-svn: 174397

11 years agoFormat comments & clean whitespace
Eli Bendersky [Tue, 5 Feb 2013 17:10:07 +0000 (17:10 +0000)]
Format comments & clean whitespace

llvm-svn: 174396

11 years agoR600: Fold remaining CONST_COPY after expand pseudo inst
Tom Stellard [Tue, 5 Feb 2013 17:09:16 +0000 (17:09 +0000)]
R600: Fold remaining CONST_COPY after expand pseudo inst

Patch by: Vincent Lejeune

Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
llvm-svn: 174395

11 years agoR600: improve inputs/interpolation handling
Tom Stellard [Tue, 5 Feb 2013 17:09:14 +0000 (17:09 +0000)]
R600: improve inputs/interpolation handling

Use one intrinsic for all sorts of interpolation.
Use two separate unexpanded instructions to represent INTERP_XY and _ZW -
this will allow to eliminate one part if it's not used.
Track liveness of special interpolation regs instead of reserving them -
this will allow to reuse those regs, lowering reg pressure.

Patch By: Vadim Girlin

v2[Vincent Lejeune]: Rebased against current llvm master

Signed-off-by: Vadim Girlin <vadimgirlin@gmail.com>
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
llvm-svn: 174394

11 years agoR600: Add tests for instruction predicates
Tom Stellard [Tue, 5 Feb 2013 17:09:13 +0000 (17:09 +0000)]
R600: Add tests for instruction predicates

llvm-svn: 174393

11 years agoR600: Emit function name in the AsmPrinter
Tom Stellard [Tue, 5 Feb 2013 17:09:11 +0000 (17:09 +0000)]
R600: Emit function name in the AsmPrinter

Emitting the function name allows us to check for it in the FileCheck
tests so we can make sure FileCheck is checking the output of the
correct function.

llvm-svn: 174392

11 years agoR600/SI: Add patterns for fcos and fsin.
Tom Stellard [Tue, 5 Feb 2013 17:09:10 +0000 (17:09 +0000)]
R600/SI: Add patterns for fcos and fsin.

Fixes 37 piglit tests and allows e.g. FlightGear to run with radeonsi.

Patch by: Michel Dänzer

Signed-off-by: Michel Dänzer <michel.daenzer@amd.com>
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
llvm-svn: 174391

11 years agoFix comments
Eli Bendersky [Tue, 5 Feb 2013 16:53:11 +0000 (16:53 +0000)]
Fix comments

llvm-svn: 174390

11 years agoHexagon: Add V4 compare instructions. Enable relationship mapping
Jyotsna Verma [Tue, 5 Feb 2013 16:42:24 +0000 (16:42 +0000)]
Hexagon: Add V4 compare instructions. Enable relationship mapping
for the existing instructions.

llvm-svn: 174389

11 years agoFix comment formatting
Eli Bendersky [Tue, 5 Feb 2013 16:40:22 +0000 (16:40 +0000)]
Fix comment formatting

llvm-svn: 174388

11 years agoFix signed-unsigned comparison warning.
Tim Northover [Tue, 5 Feb 2013 16:40:06 +0000 (16:40 +0000)]
Fix signed-unsigned comparison warning.

llvm-svn: 174387

11 years ago[arcmt] Make sure the objc migrators work fine when used with a PCH.
Argyrios Kyrtzidis [Tue, 5 Feb 2013 16:37:00 +0000 (16:37 +0000)]
[arcmt] Make sure the objc migrators work fine when used with a PCH.

rdar://13140508

llvm-svn: 174386

11 years ago[frontend] Don't put a PCH/PTH filename into the set of includes in the preprocessor...
Argyrios Kyrtzidis [Tue, 5 Feb 2013 16:36:52 +0000 (16:36 +0000)]
[frontend] Don't put a PCH/PTH filename into the set of includes in the preprocessor options;
since only one of them is allowed in command-line, process them separately.

Otherwise, if more than one is specified in the command-line, one is processed normally
and the others are going to be treated and included as header files.

Related to radar://13140508

llvm-svn: 174385

11 years agoFormatter: Detect ObjC method expressions after unary operators.
Nico Weber [Tue, 5 Feb 2013 16:21:00 +0000 (16:21 +0000)]
Formatter: Detect ObjC method expressions after unary operators.

llvm-svn: 174384

11 years ago[ASan] Delete the code related to static runtime on OS X.
Alexander Potapenko [Tue, 5 Feb 2013 15:57:12 +0000 (15:57 +0000)]
[ASan] Delete the code related to static runtime on OS X.
Nuke lib/interception/mach_override.

llvm-svn: 174383

11 years agoAdds JSON output for replacements, to simplify tools integration.
Manuel Klimek [Tue, 5 Feb 2013 15:52:21 +0000 (15:52 +0000)]
Adds JSON output for replacements, to simplify tools integration.

Using -output-replacements will now output the replacements instead
of the changed code. This allows easier integration with tools that
need full control over what changed.

The format is an array of objects with the members "offset" (number),
"length" (number) and "replacement_text" (string), for example:

[
  {
    "offset": 42,
    "length": 5,
    "replacement_text": "  "
  },
  {
    "offset": 105,
    "length": 4,
    "replacement_text": ""
  }
]

llvm-svn: 174382

11 years agoSupport: ensure proper state in ErrorOr copy ctors before calling 'get'
Meador Inge [Tue, 5 Feb 2013 15:41:27 +0000 (15:41 +0000)]
Support: ensure proper state in ErrorOr copy ctors before calling 'get'

Some paths through the copy constructors for 'ErrorOr' were calling
'get' when 'HasError' and 'IsValid' were not properly initialized.
Depending on what happened to be in memory for those member variables
the asserts in 'get' might incorrectly fire.  Fixed by ensuring that
the member variables in question are always initialized before calling
'get'.

llvm-svn: 174381

11 years agoFormatting.
NAKAMURA Takumi [Tue, 5 Feb 2013 15:32:16 +0000 (15:32 +0000)]
Formatting.

llvm-svn: 174380

11 years agollvm/test/Transforms/LoopVectorize/X86/vector_ptr_load_store.ll: "-debug" requires...
NAKAMURA Takumi [Tue, 5 Feb 2013 15:32:10 +0000 (15:32 +0000)]
llvm/test/Transforms/LoopVectorize/X86/vector_ptr_load_store.ll: "-debug" requires +Asserts.

llvm-svn: 174379

11 years agoImplements support for specifying multiple ranges.
Manuel Klimek [Tue, 5 Feb 2013 15:25:34 +0000 (15:25 +0000)]
Implements support for specifying multiple ranges.

This is backwards compatible with earlier integrations.
Also adds a basic test and a test for the ranges integration.

You can now run:
clang-format -offset=42 -length=15 -offset=150 -length=22
To re-format the ranges (42, +15) and (150, +22).

llvm-svn: 174378

11 years agoLoop Vectorizer: Handle pointer stores/loads in getWidestType()
Arnold Schwaighofer [Tue, 5 Feb 2013 15:08:02 +0000 (15:08 +0000)]
Loop Vectorizer: Handle pointer stores/loads in getWidestType()

In the loop vectorizer cost model, we used to ignore stores/loads of a pointer
type when computing the widest type within a loop. This meant that if we had
only stores/loads of pointers in a loop we would return a widest type of 8bits
(instead of 32 or 64 bit) and therefore a vector factor that was too big.

Now, if we see a consecutive store/load of pointers we use the size of a pointer
(from data layout).

This problem occured in SingleSource/Benchmarks/Shootout-C++/hash.cpp (reduced
test case is the first test in vector_ptr_load_store.ll).

radar://13139343

llvm-svn: 174377

11 years ago[asan] Fix Win/Mac build.
Evgeniy Stepanov [Tue, 5 Feb 2013 15:02:12 +0000 (15:02 +0000)]
[asan] Fix Win/Mac build.

llvm-svn: 174376

11 years agoFix remaining StringRef abuse.
Tim Northover [Tue, 5 Feb 2013 15:01:51 +0000 (15:01 +0000)]
Fix remaining StringRef abuse.

This should fix the valgrind buildbot failure.

llvm-svn: 174375

11 years agoRevert r174343, "When the target-independent DAGCombiner inferred a higher alignment...
NAKAMURA Takumi [Tue, 5 Feb 2013 14:44:16 +0000 (14:44 +0000)]
Revert r174343, "When the target-independent DAGCombiner inferred a higher alignment for a load,"

It caused hangups in compiling clang/lib/Parse/ParseDecl.cpp and clang/lib/Driver/Tools.cpp in stage2 on some hosts.

llvm-svn: 174374

11 years ago[asan] Fix nonsensical reports of partial right OOB.
Evgeniy Stepanov [Tue, 5 Feb 2013 14:32:03 +0000 (14:32 +0000)]
[asan] Fix nonsensical reports of partial right OOB.

In case of partial right OOB, ASan was reporting
  X is located 0 bytes to the right of [A, B)
where X was actually inside [A, B).

With this change, ASan will report B as the error address in such case.

llvm-svn: 174373

11 years agoLink .ARM.exidx with corresponding text section.
Logan Chien [Tue, 5 Feb 2013 14:18:59 +0000 (14:18 +0000)]
Link .ARM.exidx with corresponding text section.

The sh_link in the ELF section header of .ARM.exidx should
be filled with the section index of the corresponding text
section.

llvm-svn: 174372

11 years agoARM cost model: Cost for scalar integer casts and floating point conversions
Arnold Schwaighofer [Tue, 5 Feb 2013 14:05:55 +0000 (14:05 +0000)]
ARM cost model: Cost for scalar integer casts and floating point conversions

Also adds some costs for vector integer float conversions.

llvm-svn: 174371

11 years agoFix formatting in AArch64 backend.
Tim Northover [Tue, 5 Feb 2013 13:24:56 +0000 (13:24 +0000)]
Fix formatting in AArch64 backend.

This should fix three purely whitespace issues:
    + 80 column violations.
    + Tab characters.
    + TableGen brace placement.

No functional changes.

llvm-svn: 174370

11 years agoRemove cyclic dependency in AArch64 libraries
Tim Northover [Tue, 5 Feb 2013 13:24:47 +0000 (13:24 +0000)]
Remove cyclic dependency in AArch64 libraries

This moves the bit twiddling and string fiddling functions required by other
parts of the backend into a separate library. Previously they resided in
AArch64Desc, which created a circular dependency between various components.

llvm-svn: 174369

11 years agoTempScopInfo: clang-format
Tobias Grosser [Tue, 5 Feb 2013 12:27:23 +0000 (12:27 +0000)]
TempScopInfo: clang-format

llvm-svn: 174368

11 years agoDependences: clang-format
Tobias Grosser [Tue, 5 Feb 2013 12:27:22 +0000 (12:27 +0000)]
Dependences: clang-format

Everything except INITIALIZE_PASS_* macros

llvm-svn: 174367

11 years agoScopInfo: clang-format file
Tobias Grosser [Tue, 5 Feb 2013 12:09:06 +0000 (12:09 +0000)]
ScopInfo: clang-format file

clang-format was able to format the entire file except the final
INITIALIZE_PASS_* macros.

llvm-svn: 174366

11 years agoScopDetect: clang-format pointer types in templates
Tobias Grosser [Tue, 5 Feb 2013 11:56:05 +0000 (11:56 +0000)]
ScopDetect: clang-format pointer types in templates

llvm-svn: 174365

11 years agoInitial support for formatting ObjC method declarations/calls.
Daniel Jasper [Tue, 5 Feb 2013 10:07:47 +0000 (10:07 +0000)]
Initial support for formatting ObjC method declarations/calls.

We can now format stuff like:
- (void)doSomethingWith:(GTMFoo *)theFoo
                   rect:(NSRect)theRect
               interval:(float)theInterval {
  [myObject doFooWith:arg1 //
                 name:arg2
                error:arg3];

}

This seems to fix everything mentioned in llvm.org/PR14939.

llvm-svn: 174364

11 years agoFix some linebreak decisions in Google format.
Daniel Jasper [Tue, 5 Feb 2013 09:41:21 +0000 (09:41 +0000)]
Fix some linebreak decisions in Google format.

Before:
f(aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +
  aaaaaaaaaaaaaaaaaaaa);
aaaaaaa(aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa(aaaaaaaaaaaaaaaaa,
                                                    aaaaaaaaaaaaaaaa));

After:
f(aaaaaaaaaaaaaaaaaaaa,
  aaaaaaaaaaaaaaaaaaaa,
  aaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaa);
aaaaaaa(aaaaaaaaaaaaa,
        aaaaaaaaaaaaa,
        aaaaaaaaaaaaa(aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa));

llvm-svn: 174363

11 years agoScopDetection: clang-format some more code
Tobias Grosser [Tue, 5 Feb 2013 09:40:22 +0000 (09:40 +0000)]
ScopDetection: clang-format some more code

llvm-svn: 174362

11 years agoFix formatting regression introduced by r174307.
Daniel Jasper [Tue, 5 Feb 2013 09:34:14 +0000 (09:34 +0000)]
Fix formatting regression introduced by r174307.

In preprocessor definitions, we would not parse all the tokens and thus
not annotate them anymore. This led to a wrong formatting of comments
in google style:

  #endif // HEADER_GUARD  -- requires two spaces

llvm-svn: 174361

11 years agoThis patch that sets the Mips ELF header flag for
Jack Carter [Tue, 5 Feb 2013 09:30:03 +0000 (09:30 +0000)]
This patch that sets the Mips ELF header flag for
MicroMips architectures.

Contributer: Zoran Jovanovic

llvm-svn: 174360

11 years agoFix typo in comment
Arnaud A. de Grandmaison [Tue, 5 Feb 2013 09:06:17 +0000 (09:06 +0000)]
Fix typo in comment

llvm-svn: 174359

11 years agoThis patch that sets the EmitAlias flag in td files
Jack Carter [Tue, 5 Feb 2013 08:32:10 +0000 (08:32 +0000)]
This patch that sets the EmitAlias flag in td files
and enables the instruction printer to print aliased
instructions.

Due to usage of RegisterOperands a change in common
code (utils/TableGen/AsmWriterEmitter.cpp) is required
to get the correct register value if it is a RegisterOperand.

Contributer: Vladimir Medic

llvm-svn: 174358

11 years ago[Support][ErrorOr] Add support for convertable types.
Michael J. Spencer [Tue, 5 Feb 2013 08:22:27 +0000 (08:22 +0000)]
[Support][ErrorOr] Add support for convertable types.

llvm-svn: 174357

11 years agoAdd target-dependent versions of addAttribute/removeAttribute to AttrBuilder.
Bill Wendling [Tue, 5 Feb 2013 08:09:32 +0000 (08:09 +0000)]
Add target-dependent versions of addAttribute/removeAttribute to AttrBuilder.

llvm-svn: 174356

11 years agoChanged in comment cxx -> C++. Thanks Richard Smith!.
Michael Gottesman [Tue, 5 Feb 2013 08:01:22 +0000 (08:01 +0000)]
Changed in comment cxx -> C++. Thanks Richard Smith!.

llvm-svn: 174355

11 years agoThis patch changes a static_cast to dyn_cast
Jack Carter [Tue, 5 Feb 2013 07:47:41 +0000 (07:47 +0000)]
This patch changes a static_cast to dyn_cast
for MipsELFStreamer objects.

Contributer: Jack Carter

llvm-svn: 174354

11 years agoTextDiagnostic.cpp: Suppress a warning to use ptrdiff_t on i686-clang. [-Wsign-compare]
NAKAMURA Takumi [Tue, 5 Feb 2013 07:37:07 +0000 (07:37 +0000)]
TextDiagnostic.cpp: Suppress a warning to use ptrdiff_t on i686-clang. [-Wsign-compare]

llvm-svn: 174353

11 years agoConstruct a skeleton cu for each compile unit in the module, not just
Eric Christopher [Tue, 5 Feb 2013 07:32:03 +0000 (07:32 +0000)]
Construct a skeleton cu for each compile unit in the module, not just
for the first compile unit.

llvm-svn: 174352

11 years agoAdd support for testing the output of the abbrev table for the
Eric Christopher [Tue, 5 Feb 2013 07:32:00 +0000 (07:32 +0000)]
Add support for testing the output of the abbrev table for the
skeleton CU as part of the DWARF5 split dwarf proposal.

llvm-svn: 174351

11 years agoAdd support for emitting a stub DW_AT_GNU_dwo_id as part of the
Eric Christopher [Tue, 5 Feb 2013 07:31:55 +0000 (07:31 +0000)]
Add support for emitting a stub DW_AT_GNU_dwo_id as part of the
DWARF5 split dwarf proposal.

llvm-svn: 174350

11 years agoDriver and option support for -gsplit-dwarf. This is a part of
Eric Christopher [Tue, 5 Feb 2013 07:29:57 +0000 (07:29 +0000)]
Driver and option support for -gsplit-dwarf. This is a part of
the DWARF5 split dwarf proposal.

llvm-svn: 174349

11 years agoSpaces instead of tabs.
Eric Christopher [Tue, 5 Feb 2013 07:29:49 +0000 (07:29 +0000)]
Spaces instead of tabs.

llvm-svn: 174348

11 years agoUse the do-while(0) thing for this #define.
Bill Wendling [Tue, 5 Feb 2013 07:19:31 +0000 (07:19 +0000)]
Use the do-while(0) thing for this #define.

llvm-svn: 174347

11 years agoPrint error messages from MemoryBuffer::getFile() in llvm-symbolizer
Alexey Samsonov [Tue, 5 Feb 2013 07:01:34 +0000 (07:01 +0000)]
Print error messages from MemoryBuffer::getFile() in llvm-symbolizer

llvm-svn: 174346

11 years agoAdd code to GlobalVariable.h so that global variables marked as
Michael Gottesman [Tue, 5 Feb 2013 06:53:26 +0000 (06:53 +0000)]
Add code to GlobalVariable.h so that global variables marked as
externally_initialized return false for hasDefiniteInitializer and
hasUniqueInitializer.

rdar://12580965.

llvm-svn: 174345

11 years agoRevert "Remove sparse text on diagnostic options. These are not really documented...
Ted Kremenek [Tue, 5 Feb 2013 06:33:47 +0000 (06:33 +0000)]
Revert "Remove sparse text on diagnostic options.  These are not really documented anywhere, and they really aren't for normal users."

I changed my mind.  We should just document these in the man page.

llvm-svn: 174344

11 years agoWhen the target-independent DAGCombiner inferred a higher alignment for a load,
Owen Anderson [Tue, 5 Feb 2013 06:25:30 +0000 (06:25 +0000)]
When the target-independent DAGCombiner inferred a higher alignment for a load,
it would replace the load with one with the higher alignment.  However, it did
not place the new load in the worklist, which prevented later DAG combines in
the same phase (for example, target-specific combines) from ever seeing it.

This patch corrects that oversight, and updates some tests whose output changed
due to slightly different DAGCombine outputs.

llvm-svn: 174343

11 years agoRemove dead code related to the now defunct PCH stat cache.
Ted Kremenek [Tue, 5 Feb 2013 06:21:59 +0000 (06:21 +0000)]
Remove dead code related to the now defunct PCH stat cache.

llvm-svn: 174342

11 years agoTest for virtual instead of pure here. It has the exact same effect, and John
Nick Lewycky [Tue, 5 Feb 2013 06:20:31 +0000 (06:20 +0000)]
Test for virtual instead of pure here. It has the exact same effect, and John
claims it will improve performance.

llvm-svn: 174341

11 years agoAdded LLVM Asm/Bitcode Reader/Writer support for new IR keyword externally_initialized.
Michael Gottesman [Tue, 5 Feb 2013 05:57:38 +0000 (05:57 +0000)]
Added LLVM Asm/Bitcode Reader/Writer support for new IR keyword externally_initialized.

llvm-svn: 174340

11 years agoPR15095: Use more correct source locations for the InitListExpr we fake up for
Richard Smith [Tue, 5 Feb 2013 05:55:57 +0000 (05:55 +0000)]
PR15095: Use more correct source locations for the InitListExpr we fake up for
vector initialization. Patch by John Stratton!

llvm-svn: 174339

11 years agoRemove sparse text on diagnostic options. These are not really documented anywhere...
Ted Kremenek [Tue, 5 Feb 2013 05:55:21 +0000 (05:55 +0000)]
Remove sparse text on diagnostic options.  These are not really documented anywhere, and they really aren't for normal users.

llvm-svn: 174338

11 years agoAdd some missing diagnostics for C++11 narrowing conversions.
Richard Smith [Tue, 5 Feb 2013 05:52:24 +0000 (05:52 +0000)]
Add some missing diagnostics for C++11 narrowing conversions.

llvm-svn: 174337

11 years ago[Stack Alignment] emit warning instead of a hard error
Manman Ren [Mon, 4 Feb 2013 23:45:08 +0000 (23:45 +0000)]
[Stack Alignment] emit warning instead of a hard error

Per discussion in rdar://13127907, we should emit a hard error only if
people write code where the requested alignment is larger than achievable
and assumes the low bits are zeros. A warning should be good enough when
we are not sure if the source code assumes the low bits are zeros.

rdar://13127907

llvm-svn: 174336

11 years agoInitial cleanups of the param-attribute code in the bitcode reader/writer.
Bill Wendling [Mon, 4 Feb 2013 23:32:23 +0000 (23:32 +0000)]
Initial cleanups of the param-attribute code in the bitcode reader/writer.

Rename the PARAMATTR_CODE_ENTRY to PARAMATTR_CODE_ENTRY_OLD. It will be replaced
by another encoding. Keep around the current LLVM attribute encoder/decoder
code, but move it to the bitcode directories so that no one's tempted to use
them.

llvm-svn: 174335

11 years agoRemove the m_images(NULL) hack in the Target ctor now
Jason Molenda [Mon, 4 Feb 2013 23:30:05 +0000 (23:30 +0000)]
Remove the m_images(NULL) hack in the Target ctor now
that the original issue has been fixed by r174222.

llvm-svn: 174334

11 years ago<rdar://problem/12953018>
Enrico Granata [Mon, 4 Feb 2013 22:54:42 +0000 (22:54 +0000)]
<rdar://problem/12953018>

Synthetic children and summary for std::vector<bool> (for both libcxx and libstdcpp).
std::vector<bool> is a special case and is custom-implemented to be a vector of bits, which means we failed to handle it with the standard std::vector<T> formatter.
This checkin provides custom formatters that work correctly

llvm-svn: 174333

11 years agoReplace global std::string with const char[]
Alexey Samsonov [Mon, 4 Feb 2013 15:55:26 +0000 (15:55 +0000)]
Replace global std::string with const char[]

llvm-svn: 174332

11 years agoHexagon: Add V4 combine instructions and some more Def Pats for V2.
Jyotsna Verma [Mon, 4 Feb 2013 15:52:56 +0000 (15:52 +0000)]
Hexagon: Add V4 combine instructions and some more Def Pats for V2.

llvm-svn: 174331

11 years agoDisable a couple more vector splat optimizations on PPC.
Benjamin Kramer [Mon, 4 Feb 2013 15:52:32 +0000 (15:52 +0000)]
Disable a couple more vector splat optimizations on PPC.

I didn't see those because the test case used "not grep". FileCheck the test and
XFAIL it, preserving the old optimization, so this can be fixed eventually.

llvm-svn: 174330

11 years agoScopDetection: Improve printing of alias sets
Tobias Grosser [Mon, 4 Feb 2013 15:46:25 +0000 (15:46 +0000)]
ScopDetection: Improve printing of alias sets

We now show the all members of the alias set that may couse possible aliasing.
In case a alias set member is not a named instruction (unnamed instructions or
constant expressions), we show the expression itself.

This improves our error message

from:

  Possible aliasing for value: .reg2mem

to:

  Possible aliasing: ".reg2mem",
                     "[0 x double]* inttoptr (i64 47255179264 to [0 x double]*)

llvm-svn: 174329

11 years agoFix some abuses of StringRef
Tim Northover [Mon, 4 Feb 2013 15:44:38 +0000 (15:44 +0000)]
Fix some abuses of StringRef

We were taking a StringRef to a temporary result, which can go horribly wrong.

llvm-svn: 174328

11 years agoX86: Open up some opportunities for constant folding by postponing shift lowering.
Benjamin Kramer [Mon, 4 Feb 2013 15:19:33 +0000 (15:19 +0000)]
X86: Open up some opportunities for constant folding by postponing shift lowering.

Fixes PR15141.

llvm-svn: 174327

11 years agoX86: Simplify code. No functionality change.
Benjamin Kramer [Mon, 4 Feb 2013 15:19:25 +0000 (15:19 +0000)]
X86: Simplify code. No functionality change.

llvm-svn: 174326

11 years agoSelectionDAG: Teach FoldConstantArithmetic how to deal with vectors.
Benjamin Kramer [Mon, 4 Feb 2013 15:19:18 +0000 (15:19 +0000)]
SelectionDAG: Teach FoldConstantArithmetic how to deal with vectors.

This required disabling a PowerPC optimization that did the following:
input:
x = BUILD_VECTOR <i32 16, i32 16, i32 16, i32 16>
lowered to:
tmp = BUILD_VECTOR <i32 8, i32 8, i32 8, i32 8>
x = ADD tmp, tmp

The add now gets folded immediately and we're back at the BUILD_VECTOR we
started from. I don't see a way to fix this currently so I left it disabled
for now.

Fix some trivially foldable X86 tests too.

llvm-svn: 174325