platform/upstream/llvm.git
9 years ago[Hexagon] Adding basic ELF relocation generation and testing advanced relaxation...
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

9 years agoThe fragment implies the section, don't store both.
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

9 years agoFirst commit test.
Asaf Badouh [Mon, 1 Jun 2015 13:56:00 +0000 (13:56 +0000)]
First commit test.

llvm-svn: 238745

9 years ago[CMake] Revert commits r238740/r238741 for embedding Windows version info.
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

9 years agoAVX-512: Optimized vector shuffle for v16f32 and v16i32 types.
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

9 years agoRemoving commited assembly file.
Luke Cheeseman [Mon, 1 Jun 2015 13:18:53 +0000 (13:18 +0000)]
Removing commited assembly file.

llvm-svn: 238742

9 years agoremove the use of the LOCATION CMake variable from r238740.
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

9 years agoIn MSVC builds embed a VERSIONINFO resource in our exe and DLL files.
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

9 years agoRe-commit of r238201 with fix for building with shared libraries.
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

9 years agoAVX-512: Implemented VRANGEPD and VRANGEPD instructions for SKX.
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

9 years agoFix address adjusment in stack frame inline block lookup
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

9 years agoclang-format: [JS] Making arrow function wrapping more consistent.
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

9 years agoAVX-512: Implemented vector shuffle lowering for v8i64 and v8f64 types.
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

9 years agoCOFF: Fix warnings found by gcc
Denis Protivensky [Mon, 1 Jun 2015 09:26:32 +0000 (09:26 +0000)]
COFF: Fix warnings found by gcc

llvm-svn: 238734

9 years agoCOFF: Better noexcept specification with LLVM_NOEXCEPT
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

9 years agoCOFF: Add noexcept to std::error_category::name
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

9 years ago[MS ABI] Be a little more defensive wrt vector types
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

9 years ago[WinCOFF] Ignore .safeseh for non-x86 architectures
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

9 years agoAVX-512: added all forms of VPSHUFD and VPSHUFHW, VPSHUFLW
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

9 years agoAVX-512: Implemented VFIXUPIMMPD and VFIXUPIMMPS instructions for KNL and SKX
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

9 years ago[TableGen] Move a couple virtual methods out of line so vtable anchors can be removed...
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

9 years ago[TableGen] Remove unnecessary explicit initialization to null of a unique_ptr. NFC
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

9 years ago[TableGen] Remove unnecessary forward declarations. NFC
Craig Topper [Mon, 1 Jun 2015 06:44:14 +0000 (06:44 +0000)]
[TableGen] Remove unnecessary forward declarations. NFC

llvm-svn: 238725

9 years agoAVX-512: Fixed a bug in compress and expand intrinsics.
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

9 years agoAdd address space argument to isLegalAddressingMode
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

9 years agoRemove "%zu" format specifier for MSVC.
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

9 years agoApply name change to testsuite file.
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

9 years agoApply name change to Makefile build system.
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

9 years agoCOFF: Fix the import table Hint/Name field.
Rui Ueyama [Mon, 1 Jun 2015 03:55:04 +0000 (03:55 +0000)]
COFF: Fix the import table Hint/Name field.

llvm-svn: 238719

9 years agoFix comments.
Rui Ueyama [Mon, 1 Jun 2015 03:55:02 +0000 (03:55 +0000)]
Fix comments.

llvm-svn: 238718

9 years agoCOFF: Fix /include. Included symbols are GC-roots.
Rui Ueyama [Mon, 1 Jun 2015 03:42:54 +0000 (03:42 +0000)]
COFF: Fix /include. Included symbols are GC-roots.

llvm-svn: 238717

9 years ago[opaque pointer type] Explicitly store the pointee type of the result of a GEP
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

9 years agoApply name change to CMake build system.
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

9 years agoCOFF: Define an error category for the linker.
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

9 years agoApply name change to tools/* files.
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

9 years agoApply name change to src/* files.
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

9 years agoApply name change to doxygen files.
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

9 years agoAdding libomp.rc.var for name change
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

9 years agoTry to fix the build of IntelJITEventListener.
Rafael Espindola [Mon, 1 Jun 2015 02:18:14 +0000 (02:18 +0000)]
Try to fix the build of IntelJITEventListener.

llvm-svn: 238709

9 years agoRename HasData to IsRegistered.
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

9 years agoRemove trivial forwarding function.
Rafael Espindola [Mon, 1 Jun 2015 01:39:15 +0000 (01:39 +0000)]
Remove trivial forwarding function.

llvm-svn: 238707

9 years agoStore a bit in MCSection saying if it was registered with MCAssembler.
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

9 years agoUse a bitfield. NFC.
Rafael Espindola [Mon, 1 Jun 2015 01:05:07 +0000 (01:05 +0000)]
Use a bitfield. NFC.

llvm-svn: 238705

9 years agoUse a 32 bit field for the symbol index.
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

9 years agoSimplify another function that doesn't fail.
Rafael Espindola [Mon, 1 Jun 2015 00:27:26 +0000 (00:27 +0000)]
Simplify another function that doesn't fail.

llvm-svn: 238703

9 years ago[PHITransAddr] Don't translate unreachable values
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

9 years ago[PHITransAddr] Use std::find instead of std::count
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

9 years agoSimplify interface of function that doesn't fail.
Rafael Espindola [Sun, 31 May 2015 23:52:50 +0000 (23:52 +0000)]
Simplify interface of function that doesn't fail.

llvm-svn: 238700

9 years ago[DWARF] Fix a bug in line info handling
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

9 years agoFor COFF and MachO, compute the gap between to symbols.
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

9 years agoARMConstantIslandPass.cpp: Prune an empty \brief. [-Wdocumentation]
NAKAMURA Takumi [Sun, 31 May 2015 23:05:35 +0000 (23:05 +0000)]
ARMConstantIslandPass.cpp: Prune an empty \brief.  [-Wdocumentation]

llvm-svn: 238697

9 years agoCOFF: Add /alternatename option.
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

9 years ago[Hexagon] Including raw_ostream for debug builds.
Colin LeMahieu [Sun, 31 May 2015 22:29:33 +0000 (22:29 +0000)]
[Hexagon] Including raw_ostream for debug builds.

llvm-svn: 238695

9 years ago[Hexagon] classes are actually structs.
Colin LeMahieu [Sun, 31 May 2015 22:18:42 +0000 (22:18 +0000)]
[Hexagon] classes are actually structs.

llvm-svn: 238694

9 years agoUse a range loop. NFC.
Rafael Espindola [Sun, 31 May 2015 22:13:51 +0000 (22:13 +0000)]
Use a range loop. NFC.

llvm-svn: 238693

9 years ago[Hexagon] Adding MC packet shuffler.
Colin LeMahieu [Sun, 31 May 2015 21:57:09 +0000 (21:57 +0000)]
[Hexagon] Adding MC packet shuffler.

llvm-svn: 238692

9 years agoCOFF: Detect file type by file magic.
Rui Ueyama [Sun, 31 May 2015 21:17:10 +0000 (21:17 +0000)]
COFF: Detect file type by file magic.

llvm-svn: 238691

9 years agoCOFF: Make the Driver own all MemoryBuffers. NFC.
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

9 years ago[Mips] Add a couple of MipsAbiInfoHandler functions to check linked code type
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

9 years ago[Mips] Do not put the .reginfo section into the separate segment
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

9 years ago[Mips] Sort segments so PT_MIPS_ABIFLAGS goes right after the PT_INTERP
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

9 years ago[Mips] Reading, merging and writing .MIPS.abiflags section
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

9 years ago[Mips] Delete MipsReginfo structure. Use the Elf_Mips_RegInfo instead.
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

9 years ago[Mips] Collect all ABI related info in the single MipsAbiInfoHandler class
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

9 years agoCOFF: /libpath should not take precedence over the current directory.
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

9 years agoCOFF: Add /libpath option.
Rui Ueyama [Sun, 31 May 2015 20:10:11 +0000 (20:10 +0000)]
COFF: Add /libpath option.

llvm-svn: 238682

9 years agoCOFF: Add /include option.
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

9 years agoARM: recommit r237590: allow jump tables to be placed as constant islands.
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

9 years agoCOFF: Add /nodefaultlib option.
Rui Ueyama [Sun, 31 May 2015 19:17:14 +0000 (19:17 +0000)]
COFF: Add /nodefaultlib option.

llvm-svn: 238679

9 years agoCOFF: Refactor functions to find files from search paths.
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

9 years agoCOFF: Create LinkerDriver class.
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

9 years ago[MC] Simplify code. No functionality change intended.
Benjamin Kramer [Sun, 31 May 2015 18:49:28 +0000 (18:49 +0000)]
[MC] Simplify code. No functionality change intended.

llvm-svn: 238676

9 years agoCOFF: Use range-based for loop.
Rui Ueyama [Sun, 31 May 2015 16:10:50 +0000 (16:10 +0000)]
COFF: Use range-based for loop.

llvm-svn: 238675

9 years agoRemove debugging code
Marshall Clow [Sun, 31 May 2015 14:01:54 +0000 (14:01 +0000)]
Remove debugging code

llvm-svn: 238674

9 years ago[Format] Move UnwrappedLines instead of copying.
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

9 years agoclang-format: NFC. Cleanup after r237895.
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

9 years agoclang-format: [JS] Fix line breaks in computed property names.
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

9 years agoCOFF: Remove redundant options from tests.
Rui Ueyama [Sun, 31 May 2015 04:21:30 +0000 (04:21 +0000)]
COFF: Remove redundant options from tests.

llvm-svn: 238670

9 years agoFix unsafe memory access.
Rui Ueyama [Sun, 31 May 2015 03:57:30 +0000 (03:57 +0000)]
Fix unsafe memory access.

llvm-svn: 238669

9 years agoCOFF: Implement subsystem inference.
Rui Ueyama [Sun, 31 May 2015 03:55:46 +0000 (03:55 +0000)]
COFF: Implement subsystem inference.

llvm-svn: 238668

9 years agoCOFF: Infer entry symbol name if /entry is not given.
Rui Ueyama [Sun, 31 May 2015 03:34:08 +0000 (03:34 +0000)]
COFF: Infer entry symbol name if /entry is not given.

`main` is not the only main function in Windows. You can choose one
from these four -- {w,}{WinMain,main}. There are four different entry
point functions for them, {w,}{WinMain,main}CRTStartup, respectively.
The linker needs to choose the right one depending on which `main`
function is defined.

llvm-svn: 238667

9 years agoDon't try to memcpy zero bytes; sometimes the source pointer is NULL, and that's...
Marshall Clow [Sun, 31 May 2015 03:13:31 +0000 (03:13 +0000)]
Don't try to memcpy zero bytes; sometimes the source pointer is NULL, and that's UB. Thanks to Nuno Lopes for the catch.

llvm-svn: 238666

9 years agoClarify how the binary file checked in was generated.
Davide Italiano [Sat, 30 May 2015 22:43:36 +0000 (22:43 +0000)]
Clarify how the binary file checked in was generated.

llvm-svn: 238665

9 years ago[Hexagon] Adding override specifier and removing erroneous assertion
Colin LeMahieu [Sat, 30 May 2015 20:03:07 +0000 (20:03 +0000)]
[Hexagon] Adding override specifier and removing erroneous assertion

llvm-svn: 238664

9 years agoAdd RelocVisitor support for MachO
Keno Fischer [Sat, 30 May 2015 19:44:53 +0000 (19:44 +0000)]
Add RelocVisitor support for MachO

This commit adds partial support for MachO relocations to RelocVisitor.
A simple test case is added to show that relocations are indeed being
applied and that using llvm-dwarfdump on MachO files no longer errors.
Correctness is not yet tested, due to an unrelated bug in DebugInfo,
which will be fixed with appropriate testcase in a followup commit.

Differential Revision: http://reviews.llvm.org/D8148

llvm-svn: 238663

9 years agoUse initializer instead of memset to zero out.
Rui Ueyama [Sat, 30 May 2015 19:28:58 +0000 (19:28 +0000)]
Use initializer instead of memset to zero out.

llvm-svn: 238662

9 years agoCOFF: Support long section name.
Rui Ueyama [Sat, 30 May 2015 19:09:50 +0000 (19:09 +0000)]
COFF: Support long section name.

Section names were truncated to 8 bytes because the section table's
name field is 8 byte long. This patch creates the string table to
store long names.

llvm-svn: 238661

9 years ago[Hexagon] Adding basic relaxation functionality.
Colin LeMahieu [Sat, 30 May 2015 18:55:47 +0000 (18:55 +0000)]
[Hexagon] Adding basic relaxation functionality.

llvm-svn: 238660

9 years ago[MC] Allow backends to decide relaxation for unresolved fixups.
Colin LeMahieu [Sat, 30 May 2015 18:42:22 +0000 (18:42 +0000)]
[MC] Allow backends to decide relaxation for unresolved fixups.

Differential Revision: http://reviews.llvm.org/D8217

llvm-svn: 238659

9 years ago[lib/Fuzzer] make assertions more informative and update comments for the user-suppli...
Kostya Serebryany [Sat, 30 May 2015 17:33:13 +0000 (17:33 +0000)]
[lib/Fuzzer] make assertions more informative and update comments for the user-supplied mutator

llvm-svn: 238658

9 years agoubsan: Check for null pointers given to certain builtins, such
Nuno Lopes [Sat, 30 May 2015 16:11:40 +0000 (16:11 +0000)]
ubsan: Check for null pointers given to certain builtins, such
as memcpy, memset, memmove, and bzero.

Reviewed by: Richard Smith

Differential Revision: http://reviews.llvm.org/D9673

llvm-svn: 238657

9 years agoCode cleanup: Reindent statements.
Logan Chien [Sat, 30 May 2015 14:00:39 +0000 (14:00 +0000)]
Code cleanup: Reindent statements.

llvm-svn: 238656

9 years ago[MC] Reorder MCSymbol members to reduce padding.
Benjamin Kramer [Sat, 30 May 2015 13:52:30 +0000 (13:52 +0000)]
[MC] Reorder MCSymbol members to reduce padding.

sizeof(MCSymbol) goes from 72 to 64 bytes on x86_64.

llvm-svn: 238655

9 years agoStripped trailing whitespace. NFC.
Simon Pilgrim [Sat, 30 May 2015 13:01:42 +0000 (13:01 +0000)]
Stripped trailing whitespace. NFC.

llvm-svn: 238654

9 years agoComment change. NFC
Renato Golin [Sat, 30 May 2015 10:44:07 +0000 (10:44 +0000)]
Comment change. NFC

That comment misleads the current discussions in mentioned bug. Leave
the discussions to the bug. Also, adding a future change FIXME.

llvm-svn: 238653

9 years ago[x86] Unify the horizontal adding used for popcount lowering taking the
Chandler Carruth [Sat, 30 May 2015 10:35:03 +0000 (10:35 +0000)]
[x86] Unify the horizontal adding used for popcount lowering taking the
best approach of each.

For vNi16, we use SHL + ADD + SRL pattern that seem easily the best.

For vNi32, we use the PUNPCK + PSADBW + PACKUSWB pattern. In some cases
there is a huge improvement with this in IACA's estimated throughput --
over 2x higher throughput!!!! -- but the measurements are too good to be
true. In one narrow case, the SHL + ADD + SHL + ADD + SRL pattern looks
slightly faster, but I'm not sure I believe any of the measurements at
this point. Both are the exact same uops though. Hard to be confident of
anything past that.

If anyone wants to collect very detailed (Agner-level) timings with the
result of this patch, or with the i32 case replaced with SHL + ADD + SHl
+ ADD + SRL, I'd be very interested. Note that you'll need to test it on
both Ivybridge and Haswell, with both SSE3, SSSE3, and AVX selected as
I saw unique behavior in each of these buckets with IACA all of which
should be checked against measured performance.

But this patch is still a useful improvement by dropping duplicate work
and getting the much nicer PSADBW lowering for v2i64.

I'd still like to rephrase this in terms of generic horizontal sum. It's
a bit lame to have a special case of that just for popcount.

llvm-svn: 238652

9 years ago[ARMTargetParser] Move IAS arch ext parser. NFC
Renato Golin [Sat, 30 May 2015 10:30:02 +0000 (10:30 +0000)]
[ARMTargetParser] Move IAS arch ext parser. NFC

The plan was to move the whole table into the already existing ArchExtNames
but some fields depend on a table-generated file, and we don't yet have this
feature in the generic lib/Support side.

Once the minimum target-specific table-generated files are available in a
generic fashion to these libraries, we'll have to keep it in the ASM parser.

llvm-svn: 238651

9 years ago[x86] Split out the horizontal byte sum lowering component of the LUT
Chandler Carruth [Sat, 30 May 2015 09:46:16 +0000 (09:46 +0000)]
[x86] Split out the horizontal byte sum lowering component of the LUT
lowering into a helper function.

NFC.

llvm-svn: 238650

9 years ago[CodeGen] Indirect fields can initialize a union
David Majnemer [Sat, 30 May 2015 09:12:07 +0000 (09:12 +0000)]
[CodeGen] Indirect fields can initialize a union

The first named data member is the field used to default initialize the
union.  An IndirectFieldDecl can introduce the first named data member
of a union.

llvm-svn: 238649

9 years ago[TableGen] Merge RecTy::typeIsConvertibleTo and RecTy::baseClassOf. NFC
Craig Topper [Sat, 30 May 2015 07:36:01 +0000 (07:36 +0000)]
[TableGen] Merge RecTy::typeIsConvertibleTo and RecTy::baseClassOf. NFC

typeIsConvertibleTo was just calling baseClassOf(this) on the argument passed to it, but there weren't different signatures for baseClassOf so passing 'this' didn't really do anything interesting. typeIsConvertibleTo could have just been a non-virtual method in RecTy. But since that would be kind of a silly method, I instead re-distributed the logic from baseClassOf into typeIsConvertibleTo.

llvm-svn: 238648