Rafael Espindola [Mon, 1 Jun 2015 19:20:47 +0000 (19:20 +0000)]
Revert "[Hexagon] Adding basic ELF relocation generation and testing advanced relaxation codepath."
This reverts commit r238748.
It broke the msan bot:
http://lab.llvm.org:8011/builders/sanitizer-x86_64-linux-fast/builds/4372/steps/check-llvm%20msan/logs/stdio
llvm-svn: 238772
Chaoren Lin [Mon, 1 Jun 2015 19:06:01 +0000 (19:06 +0000)]
Dump error if dotest itself fails and no tests were run.
Reviewers: zturner, clayborg
Subscribers: lldb-commits
Differential Revision: http://reviews.llvm.org/D10163
llvm-svn: 238771
Oleksiy Vyalov [Mon, 1 Jun 2015 18:52:16 +0000 (18:52 +0000)]
Don't close handle returned by _get_osfhandle.
http://reviews.llvm.org/D9931
llvm-svn: 238770
Colin Riley [Mon, 1 Jun 2015 18:23:41 +0000 (18:23 +0000)]
Additional RenderScript debug features.
Base framework for inspecting RenderScript runtime details and helpers for various runtime actions on x86 and arm targets.
Differential Revision: http://reviews.llvm.org/D10151
llvm-svn: 238768
Chaoren Lin [Mon, 1 Jun 2015 18:04:10 +0000 (18:04 +0000)]
Fix TestPaths.
Reviewers: vharron, clayborg
Reviewed By: clayborg
Subscribers: lldb-commits
Differential Revision: http://reviews.llvm.org/D10164
llvm-svn: 238767
Arnold Schwaighofer [Mon, 1 Jun 2015 17:50:03 +0000 (17:50 +0000)]
lit: Allow configurations to restrict the set of tests to run
By setting limit_to_features to a non empty list of features a configuration can
restrict the set of tests to run to only include tests that require a feature in
this list.
rdar://
21082253
llvm-svn: 238766
Chaoren Lin [Mon, 1 Jun 2015 17:49:25 +0000 (17:49 +0000)]
Updated dosep.py to output progress and dump std{out,err} on test failure.
Reviewers: vharron, clayborg, zturner
Subscribers: lldb-commits
Differential Revision: http://reviews.llvm.org/D10143
llvm-svn: 238765
Greg Clayton [Mon, 1 Jun 2015 17:28:45 +0000 (17:28 +0000)]
Fix types.py to actually be able to run check_padding_command() without erroring out.
<rdar://problem/
21071347>
llvm-svn: 238764
Owen Anderson [Mon, 1 Jun 2015 17:26:30 +0000 (17:26 +0000)]
Disable MachineSink on convergent operations, similar to how IR Sink is
restricted. No test because no in-tree target currently has convergent
MachineInstr's.
llvm-svn: 238763
Owen Anderson [Mon, 1 Jun 2015 17:20:31 +0000 (17:20 +0000)]
Teach the IR Sink pass to (conservatively) respect convergent annotations.
llvm-svn: 238762
Hafiz Abid Qadeer [Mon, 1 Jun 2015 17:08:30 +0000 (17:08 +0000)]
Initialize 3 variables which were being used un-initialized.
No regression on testsuite. Comitted as obvious.
llvm-svn: 238761
Vasileios Kalintiris [Mon, 1 Jun 2015 16:40:45 +0000 (16:40 +0000)]
[mips][FastISel] Implement bswap.
Summary: Implement bswap intrinsic for MIPS FastISel. It's very different for misp32 r1/r2 .
Based on a patch by Reed Kotler.
Test Plan:
bswap1.ll
test-suite
Reviewers: dsanders, rkotler
Subscribers: llvm-commits, rfuhler
Differential Revision: http://reviews.llvm.org/D7219
llvm-svn: 238760
Vasileios Kalintiris [Mon, 1 Jun 2015 16:36:01 +0000 (16:36 +0000)]
[mips][FastISel] Implement intrinsics memset, memcopy & memmove.
Summary:
Implement the intrinsics memset, memcopy and memmove in MIPS FastISel.
Make some needed infrastructure fixes so that this can work.
Based on a patch by Reed Kotler.
Test Plan:
memtest1.ll
The patch passes test-suite for mips32 r1/r2 and at O0/O2
Reviewers: rkotler, dsanders
Subscribers: llvm-commits, rfuhler
Differential Revision: http://reviews.llvm.org/D7158
llvm-svn: 238759
Jonathan Roelofs [Mon, 1 Jun 2015 16:23:08 +0000 (16:23 +0000)]
Fix PR21945: Crash in constant evaluator.
Patch by Косов Евгений!
llvm-svn: 238758
Vasileios Kalintiris [Mon, 1 Jun 2015 16:17:37 +0000 (16:17 +0000)]
[mips][FastISel] Implement srem/urem and sdiv/udiv instructions.
Summary: Implement the LLVM assembly urem/srem and sdiv/udiv instructions in MIPS FastISel.
Based on a patch by Reed Kotler.
Test Plan:
srem1.ll
div1.ll
test-suite at O0/O2 for mips32 r1/r2
Reviewers: dsanders, rkotler
Subscribers: llvm-commits, rfuhler
Differential Revision: http://reviews.llvm.org/D7028
llvm-svn: 238757
Vasileios Kalintiris [Mon, 1 Jun 2015 15:56:40 +0000 (15:56 +0000)]
[mips][FastISel] Implement the select statement for MIPS FastISel.
Summary: Implement the LLVM IR select statement for MIPS FastISelsel.
Based on a patch by Reed Kotler.
Test Plan:
"Make check" test included now.
Passes test-suite at O2/O0 mips32 r1/r2.
Reviewers: dsanders, rkotler
Subscribers: llvm-commits, rfuhler
Differential Revision: http://reviews.llvm.org/D6774
llvm-svn: 238756
Vasileios Kalintiris [Mon, 1 Jun 2015 15:48:09 +0000 (15:48 +0000)]
[mips][FastISel] Clobber HI0/LO0 registers in MUL instructions.
Summary:
The contents of the HI/LO registers are unpredictable after the execution of
the MUL instruction. In addition to implicitly defining these registers in the
MUL instruction definition, we have to mark those registers as dead too.
Without this the fast register allocator is running out of registers when the
MUL instruction is followed by another one that tries to allocate the AC0
register.
Based on a patch by Reed Kotler.
Reviewers: dsanders, rkotler
Subscribers: llvm-commits, rfuhler
Differential Revision: http://reviews.llvm.org/D9825
llvm-svn: 238755
Colin LeMahieu [Mon, 1 Jun 2015 15:47:46 +0000 (15:47 +0000)]
[Hexagon] Test passes for hexagon target now that the backend correctly generates relocations.
llvm-svn: 238754
Hans Wennborg [Mon, 1 Jun 2015 15:37:58 +0000 (15:37 +0000)]
Drop remaining Dragonegg support in release scripts
r236077 and r236081 dropped Dragonegg support from the release scripts
but left some pieces. The most notable change is that Dragonegg won't
be tagged any more.
Patch by David Wiberg <dwiberg@gmail.com>.
llvm-svn: 238753
Ed Maste [Mon, 1 Jun 2015 15:24:37 +0000 (15:24 +0000)]
Refactor many file functions to use FileSpec over strings.
This is the FreeBSD change for r238604.
llvm-svn: 238752
Rafael Espindola [Mon, 1 Jun 2015 15:10:51 +0000 (15:10 +0000)]
Fix relocation selection for foo-. on mips.
This handles only the 32 bit case.
llvm-svn: 238751
Rafael Espindola [Mon, 1 Jun 2015 14:58:29 +0000 (14:58 +0000)]
Simplify code, NFC.
llvm-svn: 238750
Artur Pilipenko [Mon, 1 Jun 2015 14:53:55 +0000 (14:53 +0000)]
Add isConstant argument to MDBuilder::createTBAAStructTagNode
According to the TBAA description struct-path tag node can have an optional IsConstant field. Add corresponding argument to MDBuilder::createTBAAStructTagNode.
Reviewed By: hfinkel
Differential Revision: http://reviews.llvm.org/D10160
llvm-svn: 238749
Colin LeMahieu [Mon, 1 Jun 2015 14:51:26 +0000 (14:51 +0000)]
[Hexagon] Adding basic ELF relocation generation and testing advanced relaxation codepath.
llvm-svn: 238748
Rafael Espindola [Mon, 1 Jun 2015 14:34:40 +0000 (14:34 +0000)]
The fragment implies the section, don't store both.
This reduces MCSymbol from 64 to 56 bytes on x86_64.
llvm-svn: 238747
Asaf Badouh [Mon, 1 Jun 2015 13:56:00 +0000 (13:56 +0000)]
First commit test.
llvm-svn: 238745
Greg Bedwell [Mon, 1 Jun 2015 13:40:14 +0000 (13:40 +0000)]
[CMake] Revert commits r238740/r238741 for embedding Windows version info.
The clang Windows bots are showing mysterious failures.
Reverting until I can figure out what's going on.
llvm-svn: 238744
Elena Demikhovsky [Mon, 1 Jun 2015 13:26:18 +0000 (13:26 +0000)]
AVX-512: Optimized vector shuffle for v16f32 and v16i32 types.
llvm-svn: 238743
Luke Cheeseman [Mon, 1 Jun 2015 13:18:53 +0000 (13:18 +0000)]
Removing commited assembly file.
llvm-svn: 238742
Greg Bedwell [Mon, 1 Jun 2015 13:06:10 +0000 (13:06 +0000)]
remove the use of the LOCATION CMake variable from r238740.
It caused the following failure:
"Policy CMP0026 is not set: Disallow use of the LOCATION target property."
llvm-svn: 238741
Greg Bedwell [Mon, 1 Jun 2015 12:41:55 +0000 (12:41 +0000)]
In MSVC builds embed a VERSIONINFO resource in our exe and DLL files.
This embeds Windows version information into our executables and DLLs.
The most visible place to view this data is in the details tab of the file
properties window in Windows explorer.
Differential Revision: http://reviews.llvm.org/D7828
llvm-svn: 238740
Luke Cheeseman [Mon, 1 Jun 2015 12:02:47 +0000 (12:02 +0000)]
Re-commit of r238201 with fix for building with shared libraries.
llvm-svn: 238739
Elena Demikhovsky [Mon, 1 Jun 2015 11:05:34 +0000 (11:05 +0000)]
AVX-512: Implemented VRANGEPD and VRANGEPD instructions for SKX.
Implemented DAG lowering for all these forms.
Added tests for encoding.
By Igor Breger (igor.breger@intel.com)
llvm-svn: 238738
Tamas Berghammer [Mon, 1 Jun 2015 10:38:23 +0000 (10:38 +0000)]
Fix address adjusment in stack frame inline block lookup
When the current address is pointing 1 (unit) over the end of a
section the we have to do a section lookup after making the adjusment
of the current address.
Differential revision: http://reviews.llvm.org/D10124
llvm-svn: 238737
Daniel Jasper [Mon, 1 Jun 2015 09:56:32 +0000 (09:56 +0000)]
clang-format: [JS] Making arrow function wrapping more consistent.
Before:
someFunction(() =>
{
doSomething(); // break
})
.doSomethingElse( // break
);
After:
someFunction(() => {
doSomething(); // break
})
.doSomethingElse( // break
);
This is still bad, but at least it is consistent with what we do for other
function literals. Added corresponding tests.
llvm-svn: 238736
Elena Demikhovsky [Mon, 1 Jun 2015 09:49:53 +0000 (09:49 +0000)]
AVX-512: Implemented vector shuffle lowering for v8i64 and v8f64 types.
I removed the vector-shuffle-512-v8.ll, it is auto-generated test, not valid any more.
llvm-svn: 238735
Denis Protivensky [Mon, 1 Jun 2015 09:26:32 +0000 (09:26 +0000)]
COFF: Fix warnings found by gcc
llvm-svn: 238734
Denis Protivensky [Mon, 1 Jun 2015 09:08:11 +0000 (09:08 +0000)]
COFF: Better noexcept specification with LLVM_NOEXCEPT
This is a follow-on to r238732
llvm-svn: 238733
Denis Protivensky [Mon, 1 Jun 2015 08:12:44 +0000 (08:12 +0000)]
COFF: Add noexcept to std::error_category::name
This fixes build error with gcc.
llvm-svn: 238732
David Majnemer [Mon, 1 Jun 2015 07:41:37 +0000 (07:41 +0000)]
[MS ABI] Be a little more defensive wrt vector types
We probably shouldn't say that all appropriately sized vector types are
intel vector types (i.e. __m128, etc.) as they don't exist for all
architectures. While this is largely academic, it'd save some debugging
if we supported such a platform.
llvm-svn: 238731
David Majnemer [Mon, 1 Jun 2015 07:34:26 +0000 (07:34 +0000)]
[WinCOFF] Ignore .safeseh for non-x86 architectures
We don't want to bother with creating .sxdata sections on Win64; all the
relevant information is already in the .pdata section.
llvm-svn: 238730
Elena Demikhovsky [Mon, 1 Jun 2015 07:17:23 +0000 (07:17 +0000)]
AVX-512: added all forms of VPSHUFD and VPSHUFHW, VPSHUFLW
including encodings.
llvm-svn: 238729
Elena Demikhovsky [Mon, 1 Jun 2015 06:50:49 +0000 (06:50 +0000)]
AVX-512: Implemented VFIXUPIMMPD and VFIXUPIMMPS instructions for KNL and SKX
Implemented DAG lowering for all these forms.
Added tests for encoding.
by Igor Breger (igor.breger@intel.com)
llvm-svn: 238728
Craig Topper [Mon, 1 Jun 2015 06:44:18 +0000 (06:44 +0000)]
[TableGen] Move a couple virtual methods out of line so vtable anchors can be removed. NFC
llvm-svn: 238727
Craig Topper [Mon, 1 Jun 2015 06:44:16 +0000 (06:44 +0000)]
[TableGen] Remove unnecessary explicit initialization to null of a unique_ptr. NFC
llvm-svn: 238726
Craig Topper [Mon, 1 Jun 2015 06:44:14 +0000 (06:44 +0000)]
[TableGen] Remove unnecessary forward declarations. NFC
llvm-svn: 238725
Elena Demikhovsky [Mon, 1 Jun 2015 06:30:13 +0000 (06:30 +0000)]
AVX-512: Fixed a bug in compress and expand intrinsics.
By Igor Breger (igor.breger@intel.com)
llvm-svn: 238724
Matt Arsenault [Mon, 1 Jun 2015 05:31:59 +0000 (05:31 +0000)]
Add address space argument to isLegalAddressingMode
This is important because of different addressing modes
depending on the address space for GPU targets.
This only adds the argument, and does not update
any of the uses to provide the correct address space.
llvm-svn: 238723
Chaoren Lin [Mon, 1 Jun 2015 04:28:12 +0000 (04:28 +0000)]
Remove "%zu" format specifier for MSVC.
Reviewers: zturner
Subscribers: lldb-commits
Differential Revision: http://reviews.llvm.org/D10153
llvm-svn: 238722
Jonathan Peyton [Mon, 1 Jun 2015 04:24:23 +0000 (04:24 +0000)]
Apply name change to testsuite file.
This change has the llvm-lit part of the testsuite have clang
link to libomp instead of libiomp5.
llvm-svn: 238721
Jonathan Peyton [Mon, 1 Jun 2015 04:21:22 +0000 (04:21 +0000)]
Apply name change to Makefile build system.
This change produces a dynamic library named libomp instead of
libiomp5. Similar to the CMake change, it produces symlinks of libiomp5
in the exports/ directory for Unix systems and copies for Windows.
llvm-svn: 238720
Rui Ueyama [Mon, 1 Jun 2015 03:55:04 +0000 (03:55 +0000)]
COFF: Fix the import table Hint/Name field.
llvm-svn: 238719
Rui Ueyama [Mon, 1 Jun 2015 03:55:02 +0000 (03:55 +0000)]
Fix comments.
llvm-svn: 238718
Rui Ueyama [Mon, 1 Jun 2015 03:42:54 +0000 (03:42 +0000)]
COFF: Fix /include. Included symbols are GC-roots.
llvm-svn: 238717
David Blaikie [Mon, 1 Jun 2015 03:09:34 +0000 (03:09 +0000)]
[opaque pointer type] Explicitly store the pointee type of the result of a GEP
Alternatively, this type could be derived on-demand whenever
getResultElementType is called - if someone thinks that's the better
choice (simple time/space tradeoff), I'm happy to give it a go.
llvm-svn: 238716
Jonathan Peyton [Mon, 1 Jun 2015 03:05:13 +0000 (03:05 +0000)]
Apply name change to CMake build system.
This change has the CMake build system create a dynamic library named
libomp instead of libiomp5. Also any reference to libiomp is replaced
with libomp. One can still use the LIBOMP_LIB_NAME variable to enforce
a different name, and everything will still work as expected. An important
note is that libiomp5 and libgomp symlinks are created at install time when
on Unix systems. On Windows, copies are created with the legacy names.
llvm-svn: 238715
Rui Ueyama [Mon, 1 Jun 2015 02:58:15 +0000 (02:58 +0000)]
COFF: Define an error category for the linker.
Instead of returning non-categorized errors, return categorized errors.
All uses of make_dynamic_error_code are removed.
Because we don't have error reporting mechanism, I just chose to print out
error messages to stderr, and then return an error object. Not sure if
that's the right thing to do, but at least it seems practical.
http://reviews.llvm.org/D10129
llvm-svn: 238714
Jonathan Peyton [Mon, 1 Jun 2015 02:41:44 +0000 (02:41 +0000)]
Apply name change to tools/* files.
These changes are all in comments. Change libiomp references to
libomp.
llvm-svn: 238713
Jonathan Peyton [Mon, 1 Jun 2015 02:37:28 +0000 (02:37 +0000)]
Apply name change to src/* files.
These changes are mostly in comments, but there are a few
that aren't. Change libiomp5 => libomp everywhere. One internal
function name is changed in kmp_gsupport.c, and in kmp_i18n.c, the
static char[] variable 'name' is changed to "libomp".
llvm-svn: 238712
Jonathan Peyton [Mon, 1 Jun 2015 02:32:03 +0000 (02:32 +0000)]
Apply name change to doxygen files.
This change only affects the doxygen file that contains a
reference to libiomp5. change libiomp5 to libomp.
llvm-svn: 238711
Jonathan Peyton [Mon, 1 Jun 2015 02:26:08 +0000 (02:26 +0000)]
Adding libomp.rc.var for name change
Adding a new file libomp.rc.var in anticipation of more
name change commits. This file is a copy of libiomp.rc.var.
llvm-svn: 238710
Rafael Espindola [Mon, 1 Jun 2015 02:18:14 +0000 (02:18 +0000)]
Try to fix the build of IntelJITEventListener.
llvm-svn: 238709
Rafael Espindola [Mon, 1 Jun 2015 01:52:18 +0000 (01:52 +0000)]
Rename HasData to IsRegistered.
There is no MCSectionData, so the old name is now meaningless.
Also remove some asserts/checks that were there just because the information
they used was in MCSectionData.
llvm-svn: 238708
Rafael Espindola [Mon, 1 Jun 2015 01:39:15 +0000 (01:39 +0000)]
Remove trivial forwarding function.
llvm-svn: 238707
Rafael Espindola [Mon, 1 Jun 2015 01:30:01 +0000 (01:30 +0000)]
Store a bit in MCSection saying if it was registered with MCAssembler.
With this we can replace a SetVector with a plain std::vector.
llvm-svn: 238706
Rafael Espindola [Mon, 1 Jun 2015 01:05:07 +0000 (01:05 +0000)]
Use a bitfield. NFC.
llvm-svn: 238705
Rafael Espindola [Mon, 1 Jun 2015 00:58:31 +0000 (00:58 +0000)]
Use a 32 bit field for the symbol index.
Even 64 ELF uses a 32 bit field to refer to symbols.
llvm-svn: 238704
Rafael Espindola [Mon, 1 Jun 2015 00:27:26 +0000 (00:27 +0000)]
Simplify another function that doesn't fail.
llvm-svn: 238703
David Majnemer [Mon, 1 Jun 2015 00:15:08 +0000 (00:15 +0000)]
[PHITransAddr] Don't translate unreachable values
Unreachable values may use themselves in strange ways due to their
dominance property. Attempting to translate through them can lead to
infinite recursion, crashing LLVM. Instead, claim that we weren't able
to translate the value.
This fixes PR23096.
llvm-svn: 238702
David Majnemer [Mon, 1 Jun 2015 00:15:04 +0000 (00:15 +0000)]
[PHITransAddr] Use std::find instead of std::count
There is no need to visit all the elements if we are merely performing a
membership check. NFCI.
llvm-svn: 238701
Rafael Espindola [Sun, 31 May 2015 23:52:50 +0000 (23:52 +0000)]
Simplify interface of function that doesn't fail.
llvm-svn: 238700
Keno Fischer [Sun, 31 May 2015 23:37:04 +0000 (23:37 +0000)]
[DWARF] Fix a bug in line info handling
This fixes a bug in the line info handling in the dwarf code, based on a
problem I when implementing RelocVisitor support for MachO.
Since addr+size will give the first address past the end of the function,
we need to back up one line table entry. Fix this by looking up the
end_addr-1, which is the last address in the range. Note that this also
removes a duplicate output from the llvm-rtdyld line table dump. The
relevant line is the end_sequence one in the line table and has an offset
of the first address part the end of the range and hence should not be
included.
Also factor out the common functionality into a separate function.
This comes up on MachO much more than on ELF, since MachO
doesn't store the symbol size separately, hence making
said situation always occur.
Differential Revision: http://reviews.llvm.org/D9925
llvm-svn: 238699
Rafael Espindola [Sun, 31 May 2015 23:15:35 +0000 (23:15 +0000)]
For COFF and MachO, compute the gap between to symbols.
Before r238028 we used to do this in O(N^2), now we do it in O(N log N).
llvm-svn: 238698
NAKAMURA Takumi [Sun, 31 May 2015 23:05:35 +0000 (23:05 +0000)]
ARMConstantIslandPass.cpp: Prune an empty \brief. [-Wdocumentation]
llvm-svn: 238697
Rui Ueyama [Sun, 31 May 2015 22:31:31 +0000 (22:31 +0000)]
COFF: Add /alternatename option.
Previously, this feature was implemented using a special type of
undefined symbol, in addition to an intricate way to make the resolver
read a virtual file containing that renaming symbols.
Now the feature is directly handled by the symbol table.
The symbol table has a function, rename(), to rename symbols, whose
definition is 4 lines long. Symbol renaming is naturally modeled using
Symbol and SymbolBody.
llvm-svn: 238696
Colin LeMahieu [Sun, 31 May 2015 22:29:33 +0000 (22:29 +0000)]
[Hexagon] Including raw_ostream for debug builds.
llvm-svn: 238695
Colin LeMahieu [Sun, 31 May 2015 22:18:42 +0000 (22:18 +0000)]
[Hexagon] classes are actually structs.
llvm-svn: 238694
Rafael Espindola [Sun, 31 May 2015 22:13:51 +0000 (22:13 +0000)]
Use a range loop. NFC.
llvm-svn: 238693
Colin LeMahieu [Sun, 31 May 2015 21:57:09 +0000 (21:57 +0000)]
[Hexagon] Adding MC packet shuffler.
llvm-svn: 238692
Rui Ueyama [Sun, 31 May 2015 21:17:10 +0000 (21:17 +0000)]
COFF: Detect file type by file magic.
llvm-svn: 238691
Rui Ueyama [Sun, 31 May 2015 21:04:56 +0000 (21:04 +0000)]
COFF: Make the Driver own all MemoryBuffers. NFC.
Previously, a MemoryBuffer of a file was owned by each InputFile object.
This patch makes the Driver own all of them. InputFiles now have only
MemoryBufferRefs. This change simplifies ownership managment
(particularly for ObjectFile -- the object owned a MemoryBuffer only when
it's not created from an archive file, because in that case a parent
archive file owned the entire buffer. Now it owns nothing unconditionally.)
llvm-svn: 238690
Simon Atanasyan [Sun, 31 May 2015 20:37:22 +0000 (20:37 +0000)]
[Mips] Add a couple of MipsAbiInfoHandler functions to check linked code type
No functional changes.
llvm-svn: 238689
Simon Atanasyan [Sun, 31 May 2015 20:37:13 +0000 (20:37 +0000)]
[Mips] Do not put the .reginfo section into the separate segment
The .reginfo should not belong to the separate segment if there is
a .MIPS.abiflags section.
llvm-svn: 238688
Simon Atanasyan [Sun, 31 May 2015 20:36:58 +0000 (20:36 +0000)]
[Mips] Sort segments so PT_MIPS_ABIFLAGS goes right after the PT_INTERP
llvm-svn: 238687
Simon Atanasyan [Sun, 31 May 2015 20:36:43 +0000 (20:36 +0000)]
[Mips] Reading, merging and writing .MIPS.abiflags section
http://dmz-portal.mips.com/wiki/MIPS_O32_ABI_-_FR0_and_FR1_Interlinking
llvm-svn: 238686
Simon Atanasyan [Sun, 31 May 2015 20:36:21 +0000 (20:36 +0000)]
[Mips] Delete MipsReginfo structure. Use the Elf_Mips_RegInfo instead.
llvm-svn: 238685
Simon Atanasyan [Sun, 31 May 2015 20:36:11 +0000 (20:36 +0000)]
[Mips] Collect all ABI related info in the single MipsAbiInfoHandler class
New MipsAbiInfoHandler merges and hold both ELF header flags
and registries usage masks. In the future commits it will manage some
additional information.
llvm-svn: 238684
Rui Ueyama [Sun, 31 May 2015 20:20:37 +0000 (20:20 +0000)]
COFF: /libpath should not take precedence over the current directory.
llvm-svn: 238683
Rui Ueyama [Sun, 31 May 2015 20:10:11 +0000 (20:10 +0000)]
COFF: Add /libpath option.
llvm-svn: 238682
Rui Ueyama [Sun, 31 May 2015 19:55:40 +0000 (19:55 +0000)]
COFF: Add /include option.
It does not involve notions of virtual archives or virtual files,
nor store a list of undefined symbols somewhere else to consume them later.
We did that before. In this patch, undefined symbols are just added to
the symbol table, which now can be done in very few lines of code.
llvm-svn: 238681
Tim Northover [Sun, 31 May 2015 19:22:07 +0000 (19:22 +0000)]
ARM: recommit r237590: allow jump tables to be placed as constant islands.
The original version didn't properly account for the base register
being modified before the final jump, so caused miscompilations in
Chromium and LLVM. I've fixed this and tested with an LLVM self-host
(I don't have the means to build & test Chromium).
The general idea remains the same: in pathological cases jump tables
can be too far away from the instructions referencing them (like other
constants) so they need to be movable.
Should fix PR23627.
llvm-svn: 238680
Rui Ueyama [Sun, 31 May 2015 19:17:14 +0000 (19:17 +0000)]
COFF: Add /nodefaultlib option.
llvm-svn: 238679
Rui Ueyama [Sun, 31 May 2015 19:17:12 +0000 (19:17 +0000)]
COFF: Refactor functions to find files from search paths.
llvm-svn: 238678
Rui Ueyama [Sun, 31 May 2015 19:17:09 +0000 (19:17 +0000)]
COFF: Create LinkerDriver class.
Previously the main linker routine is just a non-member function.
We store some context information to the Config object.
This patch makes it belong to Driver.
llvm-svn: 238677
Benjamin Kramer [Sun, 31 May 2015 18:49:28 +0000 (18:49 +0000)]
[MC] Simplify code. No functionality change intended.
llvm-svn: 238676
Rui Ueyama [Sun, 31 May 2015 16:10:50 +0000 (16:10 +0000)]
COFF: Use range-based for loop.
llvm-svn: 238675
Marshall Clow [Sun, 31 May 2015 14:01:54 +0000 (14:01 +0000)]
Remove debugging code
llvm-svn: 238674
Benjamin Kramer [Sun, 31 May 2015 11:18:05 +0000 (11:18 +0000)]
[Format] Move UnwrappedLines instead of copying.
No functional change intended.
llvm-svn: 238673
Daniel Jasper [Sun, 31 May 2015 08:51:54 +0000 (08:51 +0000)]
clang-format: NFC. Cleanup after r237895.
Specifically adhere to LLVM Coding Standards (no 'else' after
return/break/continue) and remove yet another implementation of
paren counting. We already have enough of those in the
UnwrappedLineParser.
No functional changes intended.
llvm-svn: 238672
Daniel Jasper [Sun, 31 May 2015 08:40:37 +0000 (08:40 +0000)]
clang-format: [JS] Fix line breaks in computed property names.
Before:
let foo = {
[someLongKeyHere]: 1,
someOtherLongKeyHere: 2, [keyLongEnoughToWrap]: 3,
lastLongKey: 4
};
After:
let foo = {
[someLongKeyHere]: 1,
someOtherLongKeyHere: 2,
[keyLongEnoughToWrap]: 3,
lastLongKey: 4
};
llvm-svn: 238671