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
Shankar Easwaran [Thu, 10 Oct 2013 16:59:53 +0000 (16:59 +0000)]
[ELF] Return error from invalid linker script parse.
llvm-svn: 192360
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Craig Topper [Thu, 10 Oct 2013 05:01:22 +0000 (05:01 +0000)]
Remove duplicate instructions.
llvm-svn: 192340
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
Ted Kremenek [Thu, 10 Oct 2013 02:12:25 +0000 (02:12 +0000)]
Make test portable.
llvm-svn: 192338
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
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
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
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
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
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
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
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
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
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
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
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
Marshall Clow [Wed, 9 Oct 2013 21:49:03 +0000 (21:49 +0000)]
patch by Yaron: Uses rand_s() from stdlib.h (when building for Windows)
llvm-svn: 192325
Sean Callanan [Wed, 9 Oct 2013 21:45:11 +0000 (21:45 +0000)]
This patch addresses a problem encountered by the
ASTImporter when importing the following types:
typedef struct {
} A;
typedef struct {
A a;
} B;
Suppose we have imported B, but we did not at that
time need to complete it. Then later we want to
import A. The struct is anonymous, so the first
thing we want to do is make sure no other anonymous
struct already matches it. So we set up an
StructuralEquivalenceContext and compare B with A.
This happens at ASTImporter.cpp:2179.
Now, in this scenario, B is not complete. So we go
and import its fields, including a, which causes A
to be imported. The ASTImporter doesn’t yet have A
in its list of already-imported things, so we
import A.
After the StructuralEquivalenceContext is finished
determining that A and B are different, the
ASTImporter concludes that A must be imported
because no equivalent exists, so it imports a second
copy of A. Now we have two different structs
representing A. This is really bad news.
The patch allows the StructuralEquivalenceContext to
use the original version of B when making its
comparison, obviating the need for an import and
cutting this loop.
llvm-svn: 192324
Ed Maste [Wed, 9 Oct 2013 20:34:25 +0000 (20:34 +0000)]
Fix endianness in ObjectFile::CopyData
ObjectFile::CopyData is used to copy a block of target memory to the
caller's buffer (e.g. for "memory read"). This should be a straight
memcpy, and not byte-swapped if the target and host have different
endianness.
Add a new DataExtractor::CopyData() method that performs this straight
copy and use it in ObjectFile::CopyData().
llvm-svn: 192323
Ed Maste [Wed, 9 Oct 2013 19:57:11 +0000 (19:57 +0000)]
Add logging for POSIX DYLD failures
llvm-svn: 192322
Manman Ren [Wed, 9 Oct 2013 19:47:05 +0000 (19:47 +0000)]
Debug Info: update testing cases when the context and type fields of
template_type and template_value are updated to use DIRef.
Paired commit with r192320.
llvm-svn: 192321
Manman Ren [Wed, 9 Oct 2013 19:46:28 +0000 (19:46 +0000)]
Debug Info: In DIBuilder, the context and type fields of template_type and
template_value are updated to use DIRef.
A paired commit at clang is required due to changes to DIBuilder.
llvm-svn: 192320
Matt Kopec [Wed, 9 Oct 2013 19:39:55 +0000 (19:39 +0000)]
Add exec support for Linux including common support for POSIX.
llvm-svn: 192319
Matt Kopec [Wed, 9 Oct 2013 19:23:34 +0000 (19:23 +0000)]
Add error checking to 'cmd' buffer as it may not be available (ie. in the case of exec).
llvm-svn: 192318
Fariborz Jahanian [Wed, 9 Oct 2013 19:06:08 +0000 (19:06 +0000)]
ObjectiveC migrator. Introduce a new objcmt-atomic-property option
and use it to infer all properties as 'atomic'.
// rdar://
14988132
llvm-svn: 192317
Anders Waldenborg [Wed, 9 Oct 2013 19:02:09 +0000 (19:02 +0000)]
llvm-c: Make target initializer functions external functions in lib.
Making them proper functions defined in the (shared)lib instead of
static inlines defined in the header files makes it possible to
actually distribute a binary compiled against the shared library
without having to worry about getting undefined symbol errors when
calling e.g LLVMInitializeAllTargetInfos because the shared library on
the other system was compiled with different targets.
Differential Revision: http://llvm-reviews.chandlerc.com/D1714
llvm-svn: 192316
DeLesley Hutchins [Wed, 9 Oct 2013 18:38:53 +0000 (18:38 +0000)]
Fix warnings introduced in r192314.
llvm-svn: 192315
DeLesley Hutchins [Wed, 9 Oct 2013 18:30:24 +0000 (18:30 +0000)]
Consumed analysis: improve loop handling. The prior version of the analysis
marked all variables as "unknown" at the start of a loop. The new version
keeps the initial state of variables unchanged, but issues a warning if the
state at the end of the loop is different from the state at the beginning.
This patch will eventually be replaced with a more precise analysis.
Initial patch by chris.wailes@gmail.com. Reviewed and edited by
delesley@google.com.
llvm-svn: 192314
Ariel J. Bernal [Wed, 9 Oct 2013 18:27:27 +0000 (18:27 +0000)]
Revert commit r192299 until find a way to account for simlinks in OS X.
llvm-svn: 192313
Timur Iskhodzhanov [Wed, 9 Oct 2013 18:16:58 +0000 (18:16 +0000)]
Initialize vtorDisp in class constructors and destructors
Reviewed at http://llvm-reviews.chandlerc.com/D1867
llvm-svn: 192312
Rui Ueyama [Wed, 9 Oct 2013 18:14:23 +0000 (18:14 +0000)]
Do not process .objtxt file twice.
A file with .objtxt extension is parsed in readFile(), but because we did not
propagate that information to the calling side, calling side would try to parse
it again. This patch will fix the issue by adding an extra parameter to
readFile().
llvm-svn: 192311
Shankar Easwaran [Wed, 9 Oct 2013 18:12:31 +0000 (18:12 +0000)]
[ELF] Change MaxAlignment to 2.
llvm-svn: 192310
Manman Ren [Wed, 9 Oct 2013 18:10:55 +0000 (18:10 +0000)]
Debug Info: In DIBuilder, the context field of a forward decl is updated
to use DIScopeRef.
llvm-svn: 192309
Hans Wennborg [Wed, 9 Oct 2013 18:10:25 +0000 (18:10 +0000)]
Tighten diagnostics for calling conventions on variadic functions
Follow-up from r192240.
This makes it an error to use callee-cleanup conventions on variadic
functions, except for __fastcall and __stdcall, which we ignore with
a warning for GCC and MSVC compatibility.
Differential Revision: http://llvm-reviews.chandlerc.com/D1870
llvm-svn: 192308
Ed Maste [Wed, 9 Oct 2013 18:03:24 +0000 (18:03 +0000)]
Add missing space between words in comment
llvm-svn: 192307
Michael Sartain [Wed, 9 Oct 2013 17:44:52 +0000 (17:44 +0000)]
Re-enable test_convenience_registers_16bit_with_process_attach test for Linux.
Remove 32-bit POSIX register hack in ConvertBetweenRegisterKinds.
llvm-svn: 192306
Fariborz Jahanian [Wed, 9 Oct 2013 17:37:28 +0000 (17:37 +0000)]
ObjectiveC migrator. Introduce a new print policy for
suppression of strong lifetime qualifiers when
inferring property. // rdar://
15082812
llvm-svn: 192305
Bill Wendling [Wed, 9 Oct 2013 17:37:04 +0000 (17:37 +0000)]
Add missing releases.
llvm-svn: 192304
Benjamin Kramer [Wed, 9 Oct 2013 17:23:41 +0000 (17:23 +0000)]
Flip the ownership of MCStreamer and MCTargetStreamer.
MCStreamer now owns the target streamer. This prevents leaking the target
streamer.
llvm-svn: 192303
Shuxin Yang [Wed, 9 Oct 2013 17:21:44 +0000 (17:21 +0000)]
Fix a bug in Dead Argument Elimination.
If a function seen at compile time is not necessarily the one linked to
the binary being built, it is illegal to change the actual arguments
passing to it.
e.g.
--------------------------
void foo(int lol) {
// foo() has linkage satisifying isWeakForLinker()
// "lol" is not used at all.
}
void bar(int lo2) {
// xform to foo(undef) is illegal, as compiler dose not know which
// instance of foo() will be linked to the the binary being built.
foo(lol2);
}
-----------------------------
Such functions can be captured by isWeakForLinker(). NOTE that
mayBeOverridden() is insufficient for this purpose as it dosen't include
linkage types like AvailableExternallyLinkage and LinkOnceODRLinkage.
Take link_odr* as an example, it indicates a set of *EQUIVALENT* globals
that can be merged at link-time. However, the semantic of
*EQUIVALENT*-functions includes parameters. Changing parameters breaks
the assumption.
Thank John McCall for help, especially for the explanation of subtle
difference between linkage types.
rdar://
11546243
llvm-svn: 192302
Daniel Malea [Wed, 9 Oct 2013 16:56:28 +0000 (16:56 +0000)]
Allow Process::WaitForProcessToStop to return immediately if process is already in the stopped state
- By default, the above function will wait for at least one event
- Set wait_always=false to make the function return immediately if the process is already stopped
llvm-svn: 192301
Rafael Espindola [Wed, 9 Oct 2013 16:13:15 +0000 (16:13 +0000)]
Use aliases for more constructors and destructors.
With this patch we produce alias for cases like
template<typename T>
struct foobar {
foobar() {
}
};
template struct foobar<void>;
It is safe to use aliases to weak symbols, as long and the alias itself is also
weak.
llvm-svn: 192300
Ariel J. Bernal [Wed, 9 Oct 2013 16:09:23 +0000 (16:09 +0000)]
This patch fixes replacements that are not applied when relative paths are
specified.
In particular it makes sure that relative paths for non-virtual files aren't
made absolute.
Added unittest test.
llvm-svn: 192299
Rafael Espindola [Wed, 9 Oct 2013 16:07:32 +0000 (16:07 +0000)]
Add a GlobalAlias::isValidLinkage to reduce code duplication.
Thanks to Reid Kleckner for the suggestion.
llvm-svn: 192298
Daniel Jasper [Wed, 9 Oct 2013 15:06:17 +0000 (15:06 +0000)]
clang-format: Fix template declaration line breaking with comment.
Before, clang-format would always insert a linebreak before the comment
in code like:
template <typename T> // T can be A, B or C.
struct S {};
llvm-svn: 192297
Ed Maste [Wed, 9 Oct 2013 14:18:45 +0000 (14:18 +0000)]
Fix filenames in header comment blocks
llvm-svn: 192296
Sergey Matveev [Wed, 9 Oct 2013 13:36:20 +0000 (13:36 +0000)]
[sanitizer] Fix the parent liveness check in StopTheWorld.
Comparing the parent PID with 1 isn't sufficient to ensure the parent is alive,
because of prctl(PR_SET_CHILD_SUBREAPER, ...). Compare with the real parent's
recorded PID instead.
llvm-svn: 192295
Venkatraman Govindaraju [Wed, 9 Oct 2013 12:50:39 +0000 (12:50 +0000)]
[Sparc] Disable tail call optimization for sparc64.
This patch fixes PR17506.
llvm-svn: 192294
Simon Atanasyan [Wed, 9 Oct 2013 12:12:39 +0000 (12:12 +0000)]
[Mips] Group MIPS-related options checking function in one place.
llvm-svn: 192293
Simon Atanasyan [Wed, 9 Oct 2013 12:12:34 +0000 (12:12 +0000)]
[Mips] Make the isMipsR2Arch() function simpler - remove checking for
MIPS-arch.
llvm-svn: 192292
Simon Atanasyan [Wed, 9 Oct 2013 12:12:29 +0000 (12:12 +0000)]
[Mips] Remove unused mips_CPUs_Group options group. It's better to join
all MIPS-related options to the new m_mips_Features_Group later.
llvm-svn: 192291
Simon Atanasyan [Wed, 9 Oct 2013 12:12:24 +0000 (12:12 +0000)]
[Mips] Do not check for options from the OPT_mips_CPUs_Group. All these
options are aliases now.
llvm-svn: 192290
Simon Atanasyan [Wed, 9 Oct 2013 12:12:19 +0000 (12:12 +0000)]
[Mips] Make mips32/mips32r2/mips64/mips64r2 real aliases for appropriate
march options.
llvm-svn: 192289
Timur Iskhodzhanov [Wed, 9 Oct 2013 11:33:51 +0000 (11:33 +0000)]
Code cleanup: rename VTableContext to ItaniumVTableContext, VTableBuilder to ItaniumVTableBuilder and clang-format code around
llvm-svn: 192288
NAKAMURA Takumi [Wed, 9 Oct 2013 09:45:27 +0000 (09:45 +0000)]
clang/test/Coverage/codegen-next.m: Exclude this for targeting x86_64-win32.
llvm-svn: 192286
Timur Iskhodzhanov [Wed, 9 Oct 2013 09:23:58 +0000 (09:23 +0000)]
Reland 192220 "Abstract out parts of thunk emission code, add support for simple thunks when using -cxx-abi microsoft" with relaxed assertions
llvm-svn: 192285
Greg Bedwell [Wed, 9 Oct 2013 08:55:27 +0000 (08:55 +0000)]
Test commit. Remove whitespace from otherwise empty lines.
llvm-svn: 192284
Elena Demikhovsky [Wed, 9 Oct 2013 08:16:14 +0000 (08:16 +0000)]
AVX-512: Added VRCP28 and VRSQRT28 instructions and intrinsics.
llvm-svn: 192283
Tim Northover [Wed, 9 Oct 2013 07:53:57 +0000 (07:53 +0000)]
AArch64: enable MISched by default.
Substantial SelectionDAG scheduling is going away soon, and is
interfering with Hao's attempts to implement LDn/STn instructions, so
I say we make the leap first.
There were a few reorderings (inevitably) which broke some tests. I
tried to replace them with CHECK-DAG variants mostly, but some too
complex for that to be useful and I just reordered them.
llvm-svn: 192282
Tim Northover [Wed, 9 Oct 2013 07:53:49 +0000 (07:53 +0000)]
AArch64: migrate ADRP relaxation test to be llvm-mc only.
llvm-svn: 192281
Shankar Easwaran [Wed, 9 Oct 2013 07:32:47 +0000 (07:32 +0000)]
[Layout] Dont set ordinals to Files by default.
This change removes code in various places which was setting the File Ordinals.
This is because the file ordinals are assigned by the way files are resolved.
There was no other way than making the getNextFileAndOrdinal be set const and
change the _nextOrdinal to mutable.
There are so many places in code, that you would need to cleanup to make
LinkingContext non-const!
llvm-svn: 192280
Craig Topper [Wed, 9 Oct 2013 06:12:53 +0000 (06:12 +0000)]
More x86 disassembler filtering cleanup.
llvm-svn: 192279
Shankar Easwaran [Wed, 9 Oct 2013 05:37:01 +0000 (05:37 +0000)]
[cleanup] remove unused private variable
llvm-svn: 192278
Shankar Easwaran [Wed, 9 Oct 2013 05:23:23 +0000 (05:23 +0000)]
[Layout] Assign ordinals in Resolution order.
llvm-svn: 192277
Andrew Trick [Wed, 9 Oct 2013 05:11:10 +0000 (05:11 +0000)]
Add missing HasAVX512 predicate.
This was only working because AVX had cheaper rules in all cases.
I'm sure there are other places in this file where predicates are missing.
llvm-svn: 192276
Craig Topper [Wed, 9 Oct 2013 05:02:29 +0000 (05:02 +0000)]
Remove some old filters from the x86 disassembler table builder.
llvm-svn: 192275
Craig Topper [Wed, 9 Oct 2013 04:54:21 +0000 (04:54 +0000)]
Replace a couple instructions with patterns referring to other instructions with same encoding and operands. Mark a couple other instructions as CodeGenOnly since we have FR and VR instructions and only one of them is needed by the assembler/disassembler.
llvm-svn: 192274
Shankar Easwaran [Wed, 9 Oct 2013 04:30:17 +0000 (04:30 +0000)]
[test] Just use the exit code from the test for now.
Will fix this in later commits. Not sure why the regex is not passing.
llvm-svn: 192273
Craig Topper [Wed, 9 Oct 2013 04:24:38 +0000 (04:24 +0000)]
Use AVX512PIi8 for the alt forms of vcmp instructions. This adds the TB prefix and keeps the mnemonic from starting with an extra 'v'
llvm-svn: 192272
Craig Topper [Wed, 9 Oct 2013 03:56:16 +0000 (03:56 +0000)]
Mark some instructions as CodeGenOnly since they aren't needed by the assembler or disassembler. Disassembler already filtered them, but asm parser still had them in its tables.
llvm-svn: 192271
Shankar Easwaran [Wed, 9 Oct 2013 03:53:32 +0000 (03:53 +0000)]
[test] Fix regex for failing test on bot
llvm-svn: 192270
Shankar Easwaran [Wed, 9 Oct 2013 03:40:29 +0000 (03:40 +0000)]
[inputGraph] Associate Resolve state with appropriate nodes
This associates resolveState to FileNodes. The control node derive
their resolution state from the inputElements that are contained in
it.
This makes --start-group/--end-group to work with ELF linking.
llvm-svn: 192269
Jason Molenda [Wed, 9 Oct 2013 02:39:26 +0000 (02:39 +0000)]
Handle the case where completing variables in a frame
with no source-level debug information correctly.
<rdar://problem/
15182936>
llvm-svn: 192268
Sean Callanan [Wed, 9 Oct 2013 02:32:37 +0000 (02:32 +0000)]
Fixed a bug where variables' byte sizes would not
respect their Clang types if the variables' values
were represented by DWARF constu values.
<rdar://problem/
14636499>
llvm-svn: 192267
Craig Topper [Wed, 9 Oct 2013 02:18:34 +0000 (02:18 +0000)]
Add in64BitMode/in32BitMode to the MMX/SSE2/AVX maskmovq/dq instructions. This way the asm parser will pick the right one based on the mode. Instruction selection already did the right thing based on the pointer size.
llvm-svn: 192266
Rafael Espindola [Wed, 9 Oct 2013 02:05:08 +0000 (02:05 +0000)]
Add a paragraph about MCTargetStreamer.
llvm-svn: 192265
Sean Callanan [Wed, 9 Oct 2013 02:04:57 +0000 (02:04 +0000)]
Fixed a bug in the Materializer where we sent the
wrong information to ValueObjectConstResult.
<rdar://problem/
15101795>
llvm-svn: 192264
Michael Sartain [Wed, 9 Oct 2013 01:28:57 +0000 (01:28 +0000)]
Clean up RegisterContextPOSIX i386 code.
Use 32-bit register enums without gaps on 64-bit hosts.
Don't show 64-bit registers when debugging 32-bit targets.
Add psuedo gpr registers (ax, ah, al, etc.)
Add mmx registers.
Fix TestRegisters.py to not read ymm15 register on 32-bit targets.
Fill out and move gcc/dwarf/gdb register enums to RegisterContext_x86.h
llvm-svn: 192263
NAKAMURA Takumi [Wed, 9 Oct 2013 01:07:31 +0000 (01:07 +0000)]
llvm/test/LTO should run also on cygwin.
llvm-svn: 192262
Rui Ueyama [Wed, 9 Oct 2013 00:57:22 +0000 (00:57 +0000)]
Update error classes from all lowercase to camel case.
llvm-svn: 192261
Rui Ueyama [Wed, 9 Oct 2013 00:42:57 +0000 (00:42 +0000)]
Move a local variable into while-loop scope.
llvm-svn: 192260