platform/upstream/llvm.git
10 years agoMove to CLooG 0.18.1 and isl 0.12.1
Tobias Grosser [Fri, 11 Oct 2013 07:38:50 +0000 (07:38 +0000)]
Move to CLooG 0.18.1 and isl 0.12.1

llvm-svn: 192426

10 years agoRemove another unnecessary filter from the disassembler.
Craig Topper [Fri, 11 Oct 2013 06:59:57 +0000 (06:59 +0000)]
Remove another unnecessary filter from the disassembler.

llvm-svn: 192425

10 years agoPropagate Resolver::resolveUndefines()'s failure to caller.
Rui Ueyama [Fri, 11 Oct 2013 06:26:16 +0000 (06:26 +0000)]
Propagate Resolver::resolveUndefines()'s failure to caller.

llvm-svn: 192424

10 years agoRemove excessive allowRemainingUndefines() check.
Rui Ueyama [Fri, 11 Oct 2013 06:16:35 +0000 (06:16 +0000)]
Remove excessive allowRemainingUndefines() check.

allowRemainingUndefines() is already checked in Resolver::resolve(), so we
don't need to check it again after returning from it. It's actually not only
superfluous but buggy because a failure of resolve() does not always mean that
there is a remaining undefines.

llvm-svn: 192423

10 years agoReturn true from Resolver::resolve() on success.
Rui Ueyama [Fri, 11 Oct 2013 06:16:33 +0000 (06:16 +0000)]
Return true from Resolver::resolve() on success.

llvm-svn: 192422

10 years agoLiveRangeCalc.h: Update a description corresponding to r192396. [-Wdocumentation]
NAKAMURA Takumi [Fri, 11 Oct 2013 04:52:03 +0000 (04:52 +0000)]
LiveRangeCalc.h: Update a description corresponding to r192396. [-Wdocumentation]

llvm-svn: 192421

10 years agoExpand some embedded tab chars to spaces - no changes other than whitespace.
Jason Molenda [Fri, 11 Oct 2013 04:29:38 +0000 (04:29 +0000)]
Expand some embedded tab chars to spaces - no changes other than whitespace.

llvm-svn: 192420

10 years agoDiagnose by-copy captures of abstract classes.
Douglas Gregor [Fri, 11 Oct 2013 04:25:21 +0000 (04:25 +0000)]
Diagnose by-copy captures of abstract classes.

Fixes <rdar://problem/14468891>.

llvm-svn: 192419

10 years agoReplace a recursive tail call with an infinite loop.
Rui Ueyama [Fri, 11 Oct 2013 04:20:29 +0000 (04:20 +0000)]
Replace a recursive tail call with an infinite loop.

This eliminates _elements's size check from the loop.

llvm-svn: 192418

10 years agoThe emitted IR is the same, we need these flags to actually use the LLVM target.
Nick Lewycky [Fri, 11 Oct 2013 03:52:43 +0000 (03:52 +0000)]
The emitted IR is the same, we need these flags to actually use the LLVM target.
Mark it as requiring the x86 target.

llvm-svn: 192417

10 years agoRemove an unused variable added in r192415.
Rui Ueyama [Fri, 11 Oct 2013 03:51:19 +0000 (03:51 +0000)]
Remove an unused variable added in r192415.

llvm-svn: 192416

10 years agoUse switch instead of if, and handle all enum values.
Rui Ueyama [Fri, 11 Oct 2013 03:48:06 +0000 (03:48 +0000)]
Use switch instead of if, and handle all enum values.

This patch also handles errors other than no_more_files error. They were silently
ignored.

llvm-svn: 192415

10 years agoFix return after llvm_unreachable
Shankar Easwaran [Fri, 11 Oct 2013 03:41:24 +0000 (03:41 +0000)]
Fix return after llvm_unreachable

llvm-svn: 192414

10 years agoAdd -fno-function-sections and -fno-data-sections. Since
Nick Lewycky [Fri, 11 Oct 2013 03:35:10 +0000 (03:35 +0000)]
Add -fno-function-sections and -fno-data-sections. Since
-f{function,data}-sections had no tests at all, add some, and verify that the
-fno variants work as well.

llvm-svn: 192413

10 years agoFix typo in comment. No functionality change.
Nick Lewycky [Fri, 11 Oct 2013 03:33:53 +0000 (03:33 +0000)]
Fix typo in comment. No functionality change.

llvm-svn: 192412

10 years agoImplemented aarch64 SIMD copy related ACLE intrinsic :
Kevin Qin [Fri, 11 Oct 2013 02:34:30 +0000 (02:34 +0000)]
Implemented aarch64 SIMD copy related ACLE intrinsic :
vget_lane, vset_lane, vcopy_lane, vcreate, vdup_n, vdup_lane, vmov_n.

llvm-svn: 192411

10 years agoImplement aarch64 neon instruction set AdvSIMD (copy).
Kevin Qin [Fri, 11 Oct 2013 02:33:55 +0000 (02:33 +0000)]
Implement aarch64 neon instruction set AdvSIMD (copy).

llvm-svn: 192410

10 years ago[ELF] Fix Atoms in the same file had overlapping ordinals.
Shankar Easwaran [Fri, 11 Oct 2013 01:50:04 +0000 (01:50 +0000)]
[ELF] Fix Atoms in the same file had overlapping ordinals.

This also reverts the LayoutPass to use std::sort as all files
have an ordinal now.

llvm-svn: 192409

10 years agoSupport mips shared object debug info
Ed Maste [Fri, 11 Oct 2013 01:16:08 +0000 (01:16 +0000)]
Support mips shared object debug info

MIPS's .dyanamic section is read-only.  Instead of using DT_DEBUG for
the pointer to dyld information it uses a separate tag DT_MIPS_RLD_MAP
which points to storage in the read-write .rld_map section, which in
turn points to the dyld information.

Review: http://llvm-reviews.chandlerc.com/D1890
llvm-svn: 192408

10 years agoObjectiveC migrator. When migrating to NS_ENUM/NS_OPTIONS,
Fariborz Jahanian [Thu, 10 Oct 2013 23:57:58 +0000 (23:57 +0000)]
ObjectiveC migrator. When migrating to NS_ENUM/NS_OPTIONS,
don't leave a blank line behind replacing the typedef
decl. // rdar://15200949

llvm-svn: 192407

10 years agoFix typo
Matt Arsenault [Thu, 10 Oct 2013 23:05:37 +0000 (23:05 +0000)]
Fix typo

llvm-svn: 192406

10 years agoclang-cl: simplify the -m32 -m64 test
Hans Wennborg [Thu, 10 Oct 2013 23:04:06 +0000 (23:04 +0000)]
clang-cl: simplify the -m32 -m64 test

This was just broken.

llvm-svn: 192405

10 years agoTests: Do not unnecessarily depend on kill comments
Matthias Braun [Thu, 10 Oct 2013 22:37:49 +0000 (22:37 +0000)]
Tests: Do not unnecessarily depend on kill comments

llvm-svn: 192404

10 years agoTests: Use CHECK-LABEL where possible
Matthias Braun [Thu, 10 Oct 2013 22:37:47 +0000 (22:37 +0000)]
Tests: Use CHECK-LABEL where possible

llvm-svn: 192403

10 years agoclang-cl: Expose the -m32 and -m64 command-line options
Hans Wennborg [Thu, 10 Oct 2013 22:36:20 +0000 (22:36 +0000)]
clang-cl: Expose the -m32 and -m64 command-line options

And add a test to check that they work.

llvm-svn: 192402

10 years agoFix typo
Rui Ueyama [Thu, 10 Oct 2013 22:29:48 +0000 (22:29 +0000)]
Fix typo

llvm-svn: 192401

10 years agoDocument the QEnvironmentHexEncoded packet, and explain why it is
Jason Molenda [Thu, 10 Oct 2013 22:02:09 +0000 (22:02 +0000)]
Document the QEnvironmentHexEncoded packet, and explain why it is
often preferable to use this instead of QEnvironment.

llvm-svn: 192400

10 years agoObjectiveC. ObjectiveC's collection selector expression in
Fariborz Jahanian [Thu, 10 Oct 2013 21:58:04 +0000 (21:58 +0000)]
ObjectiveC. ObjectiveC's collection selector expression in
the fereach loop must be a non-const lvalue expression as
it will be assigned to at the beginning of the loop.
// rdar://15123684

llvm-svn: 192399

10 years agoPrint register in LiveInterval::print()
Matthias Braun [Thu, 10 Oct 2013 21:29:05 +0000 (21:29 +0000)]
Print register in LiveInterval::print()

llvm-svn: 192398

10 years agoRepresent RegUnit liveness with LiveRange instance
Matthias Braun [Thu, 10 Oct 2013 21:29:02 +0000 (21:29 +0000)]
Represent RegUnit liveness with LiveRange instance

Previously LiveInterval has been used, but having a spill weight and
register number is unnecessary for a register unit.

llvm-svn: 192397

10 years agoWork on LiveRange instead of LiveInterval where possible
Matthias Braun [Thu, 10 Oct 2013 21:28:57 +0000 (21:28 +0000)]
Work on LiveRange instead of LiveInterval where possible

Also change some pointer arguments to references at some places where
0-pointers are not allowed.

llvm-svn: 192396

10 years agoChange MachineVerifier to work on LiveRange + LiveInterval
Matthias Braun [Thu, 10 Oct 2013 21:28:54 +0000 (21:28 +0000)]
Change MachineVerifier to work on LiveRange + LiveInterval

llvm-svn: 192395

10 years agoPass LiveQueryResult by value
Matthias Braun [Thu, 10 Oct 2013 21:28:52 +0000 (21:28 +0000)]
Pass LiveQueryResult by value

This makes the API a bit more natural to use and makes it easier to make
LiveRanges implementation details private.

llvm-svn: 192394

10 years agoRefactor LiveInterval: introduce new LiveRange class
Matthias Braun [Thu, 10 Oct 2013 21:28:47 +0000 (21:28 +0000)]
Refactor LiveInterval: introduce new LiveRange class

LiveRange just manages a list of segments and a list of value numbers
now as LiveInterval did previously, but without having details like spill
weight or a fixed register number.
LiveInterval is now a subclass of LiveRange and simply adds the spill weight
and the register number.

llvm-svn: 192393

10 years agoRename LiveRange to LiveInterval::Segment
Matthias Braun [Thu, 10 Oct 2013 21:28:43 +0000 (21:28 +0000)]
Rename LiveRange to LiveInterval::Segment

The Segment struct contains a single interval; multiple instances of this struct
are used to construct a live range, but the struct is not a live range by
itself.

llvm-svn: 192392

10 years agoRename parameter: defined regs are not incoming.
Matthias Braun [Thu, 10 Oct 2013 21:28:38 +0000 (21:28 +0000)]
Rename parameter: defined regs are not incoming.

llvm-svn: 192391

10 years agoMake CodeGenTypes data members private.
Mark Lacey [Thu, 10 Oct 2013 20:57:00 +0000 (20:57 +0000)]
Make CodeGenTypes data members private.

No functionality differences.

llvm-svn: 192390

10 years agotest commit
Sriram Murali [Thu, 10 Oct 2013 20:24:53 +0000 (20:24 +0000)]
test commit

- fix comments on vector type legalization

llvm-svn: 192389

10 years agoUpdate comment (MIPS also has 32-bit opcodes)
Ed Maste [Thu, 10 Oct 2013 19:17:07 +0000 (19:17 +0000)]
Update comment (MIPS also has 32-bit opcodes)

llvm-svn: 192388

10 years agoInitial FreeBSD mips64 ProcessMonitor support
Ed Maste [Thu, 10 Oct 2013 19:14:55 +0000 (19:14 +0000)]
Initial FreeBSD mips64 ProcessMonitor support

Committing early to ease tracking other ongoing POSIX changes.

Review: http://llvm-reviews.chandlerc.com/D1886
llvm-svn: 192387

10 years agoUse getPointerSizeInBits() rather than 8 * getPointerSize()
Matt Arsenault [Thu, 10 Oct 2013 19:09:05 +0000 (19:09 +0000)]
Use getPointerSizeInBits() rather than 8 * getPointerSize()

llvm-svn: 192386

10 years agoPort pocl's gen_convert.py script to libclc
Tom Stellard [Thu, 10 Oct 2013 19:09:01 +0000 (19:09 +0000)]
Port pocl's gen_convert.py script to libclc

This script generates implementations for the entire set of convert_*
functions,

llvm-svn: 192385

10 years agoImplement sign() builtin
Tom Stellard [Thu, 10 Oct 2013 19:08:56 +0000 (19:08 +0000)]
Implement sign() builtin

llvm-svn: 192384

10 years agoImplement nextafter() builtin
Tom Stellard [Thu, 10 Oct 2013 19:08:51 +0000 (19:08 +0000)]
Implement nextafter() builtin

There are two implementations of nextafter():
1. Using clang's __builtin_nextafter.  Clang replaces this builtin with
a call to nextafter which is part of libm.  Therefore, this
implementation will only work for targets with an implementation of
libm (e.g. most CPU targets).

2. The other implementation is written in OpenCL C.  This function is
known internally as __clc_nextafter and can be used by targets that
don't have access to libm.

llvm-svn: 192383

10 years agoImplement isnan() builtin
Tom Stellard [Thu, 10 Oct 2013 19:08:41 +0000 (19:08 +0000)]
Implement isnan() builtin

llvm-svn: 192382

10 years agoAdd missing as_{float,double} functions
Tom Stellard [Thu, 10 Oct 2013 19:08:29 +0000 (19:08 +0000)]
Add missing as_{float,double} functions

llvm-svn: 192381

10 years agoFix grammar / missing words
Matt Arsenault [Thu, 10 Oct 2013 18:47:35 +0000 (18:47 +0000)]
Fix grammar / missing words

llvm-svn: 192380

10 years agoDebug Info: update testing cases when the context field of subprogram is updated
Manman Ren [Thu, 10 Oct 2013 18:40:16 +0000 (18:40 +0000)]
Debug Info: update testing cases when the context field of subprogram is updated
to use DIScopeRef.

Paired commit with r192378.

llvm-svn: 192379

10 years agoDebug Info: In DIBuilder, the context field of subprogram is updated to use
Manman Ren [Thu, 10 Oct 2013 18:40:01 +0000 (18:40 +0000)]
Debug Info: In DIBuilder, the context field of subprogram is updated to use
DIScopeRef.

A paired commit at clang is required due to changes to DIBuilder.

llvm-svn: 192378

10 years agoObjectiveC migrator: For 'default' and 'shared' family of
Fariborz Jahanian [Thu, 10 Oct 2013 18:23:13 +0000 (18:23 +0000)]
ObjectiveC migrator: For 'default' and 'shared' family of
methods, infer their self's type as their result type.
// rdar://15145218

llvm-svn: 192377

10 years agoAdd comments to debug info testing case.
Manman Ren [Thu, 10 Oct 2013 18:13:17 +0000 (18:13 +0000)]
Add comments to debug info testing case.

llvm-svn: 192376

10 years agoR600: Fix trunc i64 to i32 on SI
Matt Arsenault [Thu, 10 Oct 2013 18:04:16 +0000 (18:04 +0000)]
R600: Fix trunc i64 to i32 on SI

llvm-svn: 192375

10 years agoLocate VS InstallDir in the presence of newer runtime
Hans Wennborg [Thu, 10 Oct 2013 18:03:08 +0000 (18:03 +0000)]
Locate VS InstallDir in the presence of newer runtime

This fixes getSystemRegistryString() in WindowsToolChain.cpp to
make sure that the VS version that it picks has an InstallDir.
Previously we would look for the highest version os VS and check
for InstallDir afterwards.

Patch by Yaron Keren!

llvm-svn: 192374

10 years ago<rdar://problem/14146606>
Greg Clayton [Thu, 10 Oct 2013 17:53:50 +0000 (17:53 +0000)]
<rdar://problem/14146606>

Fixed an issue where environment variables that contained special characters '$' and '#' would hose up the GDB server packet. We now use the QEnvironmentHexEncoded packet that has existed for a long time when we need to. Also added code that will stop sending the QEnvironmentHexEncoded and QEnvironment packets if they aren't supported.

llvm-svn: 192373

10 years agoRemoved the -t options from linking flags to avoid having the linker print out all...
Greg Clayton [Thu, 10 Oct 2013 17:51:57 +0000 (17:51 +0000)]
Removed the -t options from linking flags to avoid having the linker print out all .o files it was linking with.

llvm-svn: 192372

10 years agoProvide msbuild integration for vs2013.
Hans Wennborg [Thu, 10 Oct 2013 17:32:01 +0000 (17:32 +0000)]
Provide msbuild integration for vs2013.

Patch by Josh Samuel!

llvm-svn: 192371

10 years agoFix msbuild integration install script.
Hans Wennborg [Thu, 10 Oct 2013 17:31:54 +0000 (17:31 +0000)]
Fix msbuild integration install script.

We previously failed to check whether the SUCCESS variable was set,
and would thus always exit with a failure if vs2012 didn't exist.

llvm-svn: 192370

10 years ago[ELF] Initial design to handle Linker scripts for ELF.
Shankar Easwaran [Thu, 10 Oct 2013 17:27:49 +0000 (17:27 +0000)]
[ELF] Initial design to handle Linker scripts for ELF.

llvm-svn: 192369

10 years ago[test] Ignore failure for now for Darwin.
Shankar Easwaran [Thu, 10 Oct 2013 17:12:50 +0000 (17:12 +0000)]
[test] Ignore failure for now for Darwin.

This is only a step to clean the buildbot.

llvm-svn: 192368

10 years agoR600/SI: Implement SIInstrInfo::verifyInstruction() for VOP*
Tom Stellard [Thu, 10 Oct 2013 17:11:55 +0000 (17:11 +0000)]
R600/SI: Implement SIInstrInfo::verifyInstruction() for VOP*

The function is used by the machine verifier and checks that VOP*
instructions have legal operands.

llvm-svn: 192367

10 years agoR600/SI: Use -verify-machineinstrs for most tests
Tom Stellard [Thu, 10 Oct 2013 17:11:46 +0000 (17:11 +0000)]
R600/SI: Use -verify-machineinstrs for most tests

We can't enable the verifier for tests with SI_IF and SI_ELSE, because
these instructions are always followed by a COPY which copies their
result to the next basic block.  This violates the machine verifier's
rule that non-terminators can not folow terminators.

Reviewed-by: Vincent Lejeune<vljn at ovi.com>
llvm-svn: 192366

10 years agoR600/SI: Define a separate MIMG instruction for each possible output value type
Tom Stellard [Thu, 10 Oct 2013 17:11:24 +0000 (17:11 +0000)]
R600/SI: Define a separate MIMG instruction for each possible output value type

During instruction selection, we rewrite the destination register
class for MIMG instructions based on their writemasks.  This creates
machine verifier errors since the new register class does not match
the register class in the MIMG instruction definition.

We can avoid this by defining different MIMG instructions for each
possible destination type and then switching to the correct instruction
when we change the register class.

llvm-svn: 192365

10 years agoR600/SI: Mark the EXEC register as reserved
Tom Stellard [Thu, 10 Oct 2013 17:11:19 +0000 (17:11 +0000)]
R600/SI: Mark the EXEC register as reserved

This prevents the machine verifier from complaining about uses of
an undefined physical register.

Reviewed-by: Vincent Lejeune<vljn at ovi.com>
llvm-svn: 192364

10 years agoR600: Use StructurizeCFGPass for non SI targets
Tom Stellard [Thu, 10 Oct 2013 17:11:12 +0000 (17:11 +0000)]
R600: Use StructurizeCFGPass for non SI targets

StructurizeCFG pass allows to make complex cfg reducible ; it allows a lot of
shader from shadertoy (which exhibits complex control flow constructs) to works
correctly with respect to CFG handling (and allow us to detect potential bug in
other part of the backend).

We provide a cmd line argument to disable the pass for debug purpose.

Patch by: Vincent Lejeune

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

10 years agoImplement AArch64 vector load/store multiple N-element structure class SIMD(lselem).
Hao Liu [Thu, 10 Oct 2013 17:01:49 +0000 (17:01 +0000)]
Implement AArch64 vector load/store multiple N-element structure class SIMD(lselem).
Including following 14 instructions:
4 ld1 insts: load multiple 1-element structure to sequential 1/2/3/4 registers.
ld2/ld3/ld4: load multiple N-element structure to sequential N registers (N=2,3,4).
4 st1 insts: store multiple 1-element structure from sequential 1/2/3/4 registers.
st2/st3/st4: store multiple N-element structure from sequential N registers (N = 2,3,4).

llvm-svn: 192362

10 years agoImplement AArch64 vector load/store multiple N-element structure class SIMD(lselem).
Hao Liu [Thu, 10 Oct 2013 17:00:52 +0000 (17:00 +0000)]
Implement AArch64 vector load/store multiple N-element structure class SIMD(lselem).
Including following 14 instructions:
4 ld1 insts: load multiple 1-element structure to sequential 1/2/3/4 registers.
ld2/ld3/ld4: load multiple N-element structure to sequential N registers (N=2,3,4).
4 st1 insts: store multiple 1-element structure from sequential 1/2/3/4 registers.
st2/st3/st4: store multiple N-element structure from sequential N registers (N = 2,3,4).

llvm-svn: 192361

10 years ago[ELF] Return error from invalid linker script parse.
Shankar Easwaran [Thu, 10 Oct 2013 16:59:53 +0000 (16:59 +0000)]
[ELF] Return error from invalid linker script parse.

llvm-svn: 192360

10 years agoDisable RTTI in one test so clang doesn't assert behind the scenes
Timur Iskhodzhanov [Thu, 10 Oct 2013 16:38:32 +0000 (16:38 +0000)]
Disable RTTI in one test so clang doesn't assert behind the scenes

llvm-svn: 192359

10 years agoPOSIX dyld: handle extra MIPS link map field
Ed Maste [Thu, 10 Oct 2013 16:09:31 +0000 (16:09 +0000)]
POSIX dyld: handle extra MIPS link map field

On at least FreeBSD and NetBSD there is an extra field in the dyld link
map struct.  I've left an assert for other OSes (i.e., Linux/mips) until
it's determined if they do the same.

llvm-svn: 192358

10 years agotsan: minor refactoring
Dmitry Vyukov [Thu, 10 Oct 2013 16:03:24 +0000 (16:03 +0000)]
tsan: minor refactoring

Replace duplicate code snippet with function.

llvm-svn: 192357

10 years agoRevert "Implement AArch64 vector load/store multiple N-element structure class SIMD...
Tim Northover [Thu, 10 Oct 2013 16:00:08 +0000 (16:00 +0000)]
Revert "Implement AArch64 vector load/store multiple N-element structure class SIMD(lselem). "

This reverts commit r192351. The LLVM side broke the build and the Clang tests
will inevitably fail without it.

llvm-svn: 192356

10 years agotsan: add annotations to ignore synchronization operations
Dmitry Vyukov [Thu, 10 Oct 2013 15:58:12 +0000 (15:58 +0000)]
tsan: add annotations to ignore synchronization operations

The annotations are AnnotateIgnoreSyncBegin/End,
may be useful to ignore some infrastructure synchronization
that introduces lots of false negatives.

llvm-svn: 192355

10 years agoRevert "Implement AArch64 vector load/store multiple N-element structure class SIMD...
Rafael Espindola [Thu, 10 Oct 2013 15:15:17 +0000 (15:15 +0000)]
Revert "Implement AArch64 vector load/store multiple N-element structure class SIMD(lselem). Including following 14 instructions: 4 ld1 insts: load multiple 1-element structure to sequential 1/2/3/4 registers. ld2/ld3/ld4: load multiple N-element structure to sequential N registers (N=2,3,4). 4 st1 insts: store multiple 1-element structure from sequential 1/2/3/4 registers. st2/st3/st4: store multiple N-element structure from sequential N registers (N = 2,3,4)."

This reverts commit r192352. It broke the build.

llvm-svn: 192354

10 years agoRevert "Use aliases for more constructors and destructors."
Rafael Espindola [Thu, 10 Oct 2013 15:04:21 +0000 (15:04 +0000)]
Revert "Use aliases for more constructors and destructors."

This reverts commit r192300.

The change itself looks correct, but it found issues on how we handle aliases
in llvm.

llvm-svn: 192353

10 years agoImplement AArch64 vector load/store multiple N-element structure class SIMD(lselem).
Hao Liu [Thu, 10 Oct 2013 15:01:24 +0000 (15:01 +0000)]
Implement AArch64 vector load/store multiple N-element structure class SIMD(lselem).
Including following 14 instructions:
4 ld1 insts: load multiple 1-element structure to sequential 1/2/3/4 registers.
ld2/ld3/ld4: load multiple N-element structure to sequential N registers (N=2,3,4).
4 st1 insts: store multiple 1-element structure from sequential 1/2/3/4 registers.
st2/st3/st4: store multiple N-element structure from sequential N registers (N = 2,3,4).

llvm-svn: 192352

10 years agoImplement AArch64 vector load/store multiple N-element structure class SIMD(lselem).
Hao Liu [Thu, 10 Oct 2013 14:59:36 +0000 (14:59 +0000)]
Implement AArch64 vector load/store multiple N-element structure class SIMD(lselem).
Including following 14 instructions:
4 ld1 insts: load multiple 1-element structure to sequential 1/2/3/4 registers.
ld2/ld3/ld4: load multiple N-element structure to sequential N registers (N=2,3,4).
4 st1 insts: store multiple 1-element structure from sequential 1/2/3/4 registers.
st2/st3/st4: store multiple N-element structure from sequential N registers (N = 2,3,4).

E.g. ld1(3 registers version) will load 32-bit elements {A, B, C, D, E, F} sequentially into the three 64-bit vectors list {BA, DC, FE}.
E.g. ld3 will load 32-bit elements {A, B, C, D, E, F} into the three 64-bit vectors list {DA, EB, FC}.

llvm-svn: 192351

10 years agoARM: Put isV8EligibleForIT into the llvm namespace. While there make it inline.
Benjamin Kramer [Thu, 10 Oct 2013 14:35:45 +0000 (14:35 +0000)]
ARM: Put isV8EligibleForIT into the llvm namespace. While there make it inline.

llvm-svn: 192350

10 years agoCorrectly detect colon in bit fields. Fixes PR17333.
Alexander Kornienko [Thu, 10 Oct 2013 13:36:20 +0000 (13:36 +0000)]
Correctly detect colon in bit fields. Fixes PR17333.

Summary: Colon was incorrectly detected as a start of inheritance list. Fixed.

Reviewers: djasper

Reviewed By: djasper

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

llvm-svn: 192349

10 years agoDisable function padding to get this test to pass on atom.
Benjamin Kramer [Thu, 10 Oct 2013 12:46:23 +0000 (12:46 +0000)]
Disable function padding to get this test to pass on atom.

llvm-svn: 192348

10 years agoParser: Avoid a crash-on-invalid when trying to diagnose function calls with -> in it.
Benjamin Kramer [Thu, 10 Oct 2013 12:24:40 +0000 (12:24 +0000)]
Parser: Avoid a crash-on-invalid when trying to diagnose function calls with -> in it.

Use the existing convenience function.

llvm-svn: 192347

10 years agoSema: Taking the address of a dtor is illegal per C++ [class.dtor]p2.
Benjamin Kramer [Thu, 10 Oct 2013 09:44:41 +0000 (09:44 +0000)]
Sema: Taking the address of a dtor is illegal per C++ [class.dtor]p2.

Emit a proper error instead of crashing in CodeGen. PR16892.

llvm-svn: 192345

10 years agoARM: correct liveness flags during ARMLoadStoreOpt
Tim Northover [Thu, 10 Oct 2013 09:28:20 +0000 (09:28 +0000)]
ARM: correct liveness flags during ARMLoadStoreOpt

When we had a sequence like:

    s1 = VLDRS [r0, 1], Q0<imp-def>
    s3 = VLDRS [r0, 2], Q0<imp-use,kill>, Q0<imp-def>
    s0 = VLDRS [r0, 0], Q0<imp-use,kill>, Q0<imp-def>
    s2 = VLDRS [r0, 4], Q0<imp-use,kill>, Q0<imp-def>

we were gathering the {s0, s1} loads below the s3 load. This is fine,
but confused the verifier since now the s3 load had Q0<imp-use> with
no definition above it.

This should mark such uses <undef> as well. The liveness structure at
the beginning and end of the block is unaffected, and the true sN
definitions should prevent any dodgy reorderings being introduced
elsewhere.

rdar://problem/15124449

llvm-svn: 192344

10 years ago[Mips] Support FSF Mips toolchain directories tree in the Clang driver.
Simon Atanasyan [Thu, 10 Oct 2013 07:57:44 +0000 (07:57 +0000)]
[Mips] Support FSF Mips toolchain directories tree in the Clang driver.

The patch reviewed by Rafael Espindola.
http://llvm-reviews.chandlerc.com/D1843

llvm-svn: 192343

10 years ago[PECOFF] Add files appear in .drectve to input graph
Rui Ueyama [Thu, 10 Oct 2013 05:39:43 +0000 (05:39 +0000)]
[PECOFF] Add files appear in .drectve to input graph

-- so that command line options to specify new input files, such as
/defaultlib:foo, is handled properly. Such options were ignored before
this patch.

llvm-svn: 192342

10 years agoAllow non-AVX form of pmovmskb to take a GR64 operand.
Craig Topper [Thu, 10 Oct 2013 05:33:31 +0000 (05:33 +0000)]
Allow non-AVX form of pmovmskb to take a GR64 operand.

llvm-svn: 192341

10 years agoRemove duplicate instructions.
Craig Topper [Thu, 10 Oct 2013 05:01:22 +0000 (05:01 +0000)]
Remove duplicate instructions.

llvm-svn: 192340

10 years agoFix so CRC32r64r8 isn't accidentally filtered from the disassembler tables.
Craig Topper [Thu, 10 Oct 2013 04:26:52 +0000 (04:26 +0000)]
Fix so CRC32r64r8 isn't accidentally filtered from the disassembler tables.

llvm-svn: 192339

10 years agoMake test portable.
Ted Kremenek [Thu, 10 Oct 2013 02:12:25 +0000 (02:12 +0000)]
Make test portable.

llvm-svn: 192338

10 years agoAdd a section about clang-cl to UsersManual.rst
Hans Wennborg [Thu, 10 Oct 2013 01:15:16 +0000 (01:15 +0000)]
Add a section about clang-cl to UsersManual.rst

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

llvm-svn: 192337

10 years agoPOSIX RegisterContext for mips64
Ed Maste [Thu, 10 Oct 2013 01:04:21 +0000 (01:04 +0000)]
POSIX RegisterContext for mips64

Based on the POSIX x86_64 register context.  This is sufficient for opening
a mips64 (big endian) core file.  Subsequent changes will connect the
disassembler, dynamic loader support, ABI, etc.

Review: http://llvm-reviews.chandlerc.com/D1873

(Missed "svn add" on this file in r192335)

llvm-svn: 192336

10 years agoPOSIX RegisterContext for mips64
Ed Maste [Thu, 10 Oct 2013 00:59:47 +0000 (00:59 +0000)]
POSIX RegisterContext for mips64

Based on the POSIX x86_64 register context.  This is sufficient for opening
a mips64 (big endian) core file.  Subsequent changes will connect the
disassembler, dynamic loader support, ABI, etc.

Review: http://llvm-reviews.chandlerc.com/D1873
llvm-svn: 192335

10 years agoFix getIntegerTypeOrder() to properly handle enums by first unwrapping their underlyi...
Ted Kremenek [Thu, 10 Oct 2013 00:54:01 +0000 (00:54 +0000)]
Fix getIntegerTypeOrder() to properly handle enums by first unwrapping their underlying integer type.  This is a precondition for calling getIntegerRank().

Fixes an assertion failure in a test case involving vectors.

Fixes <rdar://problem/15091442>

Please somebody check this.

llvm-svn: 192334

10 years agoFixed a leak of ASTStructExtractors and also
Sean Callanan [Thu, 10 Oct 2013 00:39:23 +0000 (00:39 +0000)]
Fixed a leak of ASTStructExtractors and also
made sure we don't keep around no-longer-valid
ASTTransformers.

<rdar://problem/15182379>

llvm-svn: 192333

10 years agoMerge RegisterContextPOSIX_x86_64 and RegisterContextPOSIX_i386 into RegisterContextP...
Michael Sartain [Thu, 10 Oct 2013 00:16:10 +0000 (00:16 +0000)]
Merge RegisterContextPOSIX_x86_64 and RegisterContextPOSIX_i386 into RegisterContextPOSIX_x86

llvm-svn: 192332

10 years agoUse KEY_WOW64_32KEY when reading the registry in WindowsToolChain.cpp (PR17033)
Hans Wennborg [Wed, 9 Oct 2013 23:41:48 +0000 (23:41 +0000)]
Use KEY_WOW64_32KEY when reading the registry in WindowsToolChain.cpp (PR17033)

This exposes a 32-bit view of the registry even when Clang is built as a 64-bit
program. Since Visual Studio is a 32-bit application, this is necessary for us
to find it.

llvm-svn: 192331

10 years ago[mips] Do not generate INS/EXT nodes if target does not have support for
Akira Hatanaka [Wed, 9 Oct 2013 23:36:17 +0000 (23:36 +0000)]
[mips] Do not generate INS/EXT nodes if target does not have support for
ins/ext.

llvm-svn: 192330

10 years agoRevert "llvm-c: Make target initializer functions external functions in lib."
Rui Ueyama [Wed, 9 Oct 2013 23:15:49 +0000 (23:15 +0000)]
Revert "llvm-c: Make target initializer functions external functions in lib."

This reverts commit r192316. The original change introduced circular
dependencies between libTarget and backends. That would broke a build unless
link everything into one big binary.

llvm-svn: 192329

10 years agoRefine string literal concatenation warning within an NSArray literal to not warn...
Ted Kremenek [Wed, 9 Oct 2013 22:34:33 +0000 (22:34 +0000)]
Refine string literal concatenation warning within an NSArray literal to not warn when the literal comes from a macro expansion.  Fixes <rdar://problem/15147688>.

llvm-svn: 192328

10 years agoImplemented the reverse-lookup API in the AST
Sean Callanan [Wed, 9 Oct 2013 22:33:34 +0000 (22:33 +0000)]
Implemented the reverse-lookup API in the AST
importer to avoid duplicate imports of anonymous
structs.

<rdar://problem/14421722>

llvm-svn: 192327

10 years agoInitial checkin of curses-based LLDB UI (lui)
Daniel Malea [Wed, 9 Oct 2013 22:11:30 +0000 (22:11 +0000)]
Initial checkin of curses-based LLDB UI (lui)

LLDB (Terminal) User Interface
==============================
This directory contains the curses user interface for LLDB. To use it, ensure Python can find your lldb module. You may have to modify PYTHONPATH for that purpose:

$ export PYTHONPATH=/path/to/lldb/module

Then, run the lui.py. To load a core file:
$ ./lui.py --core core

To create a target from an executable:
$ ./lui.py /bin/echo "hello world"

To attach to a running process:
$ ./lui.py --attach <pid>

Known Issues
============
1. Resizing the terminal will most likely cause lui to crash.
2. Missing paging in command-window
3. Only minimal testing (on Ubuntu Linux x86_64)

Missing Features
================
- stdin/stdout/stderr windows
- memory window
- backtrace window
- threads window
- tab-completion
- syntax-highlighting (via pygments library)
- (local) variables window
- registers window
- disassembly window
- custom layout

llvm-svn: 192326