platform/upstream/llvm.git
9 years agoDelete dead code. NFCI
Jonathan Roelofs [Wed, 17 Jun 2015 23:31:45 +0000 (23:31 +0000)]
Delete dead code. NFCI

llvm-svn: 239974

9 years agoAdd a test for expression evaluation while inferior is blocked in a syscall
Pavel Labath [Wed, 17 Jun 2015 23:28:55 +0000 (23:28 +0000)]
Add a test for expression evaluation while inferior is blocked in a syscall

Summary: The test is XFAILed for Linux x86_64 and i386 because of bug #23659.

Test Plan: NFC

Reviewers: tberghammer

Subscribers: lldb-commits, emaste

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

llvm-svn: 239973

9 years agoYAML: Assign a value returned by the default constructor to the value in an optional...
Alex Lorenz [Wed, 17 Jun 2015 23:26:01 +0000 (23:26 +0000)]
YAML: Assign a value returned by the default constructor to the value in an optional mapping.

This commit ensures that a value that's passed into YAML's IO mapOptional method
is going to be assigned a value returned by the default constructor for that
value's type when the appropriate key is not present in the YAML mapping.

Reviewers: Duncan P. N. Exon Smith

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

llvm-svn: 239972

9 years ago[analyzer] Cleanup: $Status is always 0 here.
Anton Yartsev [Wed, 17 Jun 2015 23:25:58 +0000 (23:25 +0000)]
[analyzer] Cleanup: $Status is always 0 here.

llvm-svn: 239971

9 years ago[analyzer] Close file handle before output to file from external command.
Anton Yartsev [Wed, 17 Jun 2015 23:12:33 +0000 (23:12 +0000)]
[analyzer] Close file handle before output to file from external command.

An old code caused problems under Windows - additional temporary file was created for clang preprocessor output while the right output file remained empty.

llvm-svn: 239970

9 years ago[modules] Ensure that if we merge the definitions of two enumerations, that
Richard Smith [Wed, 17 Jun 2015 23:07:50 +0000 (23:07 +0000)]
[modules] Ensure that if we merge the definitions of two enumerations, that
making either of them visible makes the merged definition visible.

llvm-svn: 239969

9 years agoAdd negative test for target.move-to-nearest-code=off using source location
Dawn Perchik [Wed, 17 Jun 2015 22:56:03 +0000 (22:56 +0000)]
Add negative test for target.move-to-nearest-code=off using source location

Test Plan: ./dotest.py --executable lldb -f MiBreakTestCase.test_lldbmi_break_insert_settings
Reviewed By: clayborg, abidh
Differential Revision: http://reviews.llvm.org/D10486

llvm-svn: 239968

9 years ago[Driver] Add an assert to Darwin::isTargetMacOS() for consistency.
Alexey Samsonov [Wed, 17 Jun 2015 22:51:12 +0000 (22:51 +0000)]
[Driver] Add an assert to Darwin::isTargetMacOS() for consistency.

llvm-svn: 239967

9 years ago[X86][SSE] Improved support for vector i16 to float conversions.
Simon Pilgrim [Wed, 17 Jun 2015 22:43:34 +0000 (22:43 +0000)]
[X86][SSE] Improved support for vector i16 to float conversions.

Added explicit sign extension for v4i16/v8i16 to v4i32/v8i32 before conversion to floats. Matches existing support for v4i8/v8i8.

Follow up to D10433

llvm-svn: 239966

9 years ago[TestLoadUnload] Enable for Android while skipping it for other remotes.
Siva Chandra [Wed, 17 Jun 2015 22:32:27 +0000 (22:32 +0000)]
[TestLoadUnload] Enable for Android while skipping it for other remotes.

Summary:
This change adds all the necessary infrastructure required to
selectively enable and make TestLoadUnload work for Android. One test,
which tests the module search paths, is still kept disabled for remote
as search paths (because of module caching) are local anyway.

Reviewers: tberghammer

Reviewed By: tberghammer

Subscribers: emaste, lldb-commits, tberghammer

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

llvm-svn: 239965

9 years agoAdd NVPTXLowerAlloca pass to convert alloca'ed memory to local address
Jingyue Wu [Wed, 17 Jun 2015 22:31:02 +0000 (22:31 +0000)]
Add NVPTXLowerAlloca pass to convert alloca'ed memory to local address

Summary:
This is done by first adding two additional instructions to convert the
alloca returned address to local and convert it back to generic. Then
replace all uses of alloca instruction with the converted generic
address. Then we can rely NVPTXFavorNonGenericAddrSpace pass to combine
the generic addresscast and the corresponding Load, Store, Bitcast, GEP
Instruction together.

Patched by Xuetian Weng (xweng@google.com).

Test Plan: test/CodeGen/NVPTX/lower-alloca.ll

Reviewers: jholewinski, jingyue

Reviewed By: jingyue

Subscribers: meheff, broune, eliben, jholewinski, llvm-commits

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

llvm-svn: 239964

9 years agoFix enum LanguageType values and language string table lookups.
Dawn Perchik [Wed, 17 Jun 2015 22:30:24 +0000 (22:30 +0000)]
Fix enum LanguageType values and language string table lookups.

Summary:
* Fix enum LanguageType values so that they can be used as indexes
into array language_names and g_languages as assumed by
LanguageRuntime::GetNameForLanguageType,
Language::SetLanguageFromCString and Language::AsCString.
* Add DWARFCompileUnit::LanguageTypeFromDWARF to convert from DWARF
DW_LANG_* values to enum LanguageType values.

Reviewed By: clayborg, abidh
Differential Revision: http://reviews.llvm.org/D10484

llvm-svn: 239963

9 years ago[Mips] Use new llvm-readobj -mips-reginfo flag to check .reginfo content
Simon Atanasyan [Wed, 17 Jun 2015 22:28:38 +0000 (22:28 +0000)]
[Mips] Use new llvm-readobj -mips-reginfo flag to check .reginfo content

No functional changes.

llvm-svn: 239962

9 years ago[Mips] Write inline some more relocation calculations
Simon Atanasyan [Wed, 17 Jun 2015 22:28:16 +0000 (22:28 +0000)]
[Mips] Write inline some more relocation calculations

No functional changes.

llvm-svn: 239961

9 years ago[Mips] Support R_MICROMIPS_GPREL16 / R_MICROMIPS_GPREL7_S2 relocations handling
Simon Atanasyan [Wed, 17 Jun 2015 22:27:54 +0000 (22:27 +0000)]
[Mips] Support R_MICROMIPS_GPREL16 / R_MICROMIPS_GPREL7_S2 relocations handling

llvm-svn: 239960

9 years ago[Mips] Support R_MIPS_16 relocation handling
Simon Atanasyan [Wed, 17 Jun 2015 22:27:39 +0000 (22:27 +0000)]
[Mips] Support R_MIPS_16 relocation handling

llvm-svn: 239959

9 years agoRevert "[Sanitizers] Provide better diagnostic for sanitizers unsupported for target...
Alexey Samsonov [Wed, 17 Jun 2015 22:27:32 +0000 (22:27 +0000)]
Revert "[Sanitizers] Provide better diagnostic for sanitizers unsupported for target triple."

This reverts commit r239953, while I'm investigating assertion
failure from http://lab.llvm.org:8080/green/job/clang-stage1-cmake-RA-incremental_check/9994/

llvm-svn: 239958

9 years ago[Mips] Do not use functions to calculate trivial relocations
Simon Atanasyan [Wed, 17 Jun 2015 22:27:27 +0000 (22:27 +0000)]
[Mips] Do not use functions to calculate trivial relocations

No functional changes.

llvm-svn: 239957

9 years ago[CMake] Remove redundant checks in TSan CMakeLists.txt
Alexey Samsonov [Wed, 17 Jun 2015 22:24:49 +0000 (22:24 +0000)]
[CMake] Remove redundant checks in TSan CMakeLists.txt

llvm-svn: 239956

9 years ago[CMake] LSan is not actually available on Darwin.
Alexey Samsonov [Wed, 17 Jun 2015 22:24:44 +0000 (22:24 +0000)]
[CMake] LSan is not actually available on Darwin.

llvm-svn: 239955

9 years ago[modules] Fix typo in default argument merging.
Richard Smith [Wed, 17 Jun 2015 22:13:23 +0000 (22:13 +0000)]
[modules] Fix typo in default argument merging.

llvm-svn: 239954

9 years ago[Sanitizers] Provide better diagnostic for sanitizers unsupported for target triple.
Alexey Samsonov [Wed, 17 Jun 2015 22:07:28 +0000 (22:07 +0000)]
[Sanitizers] Provide better diagnostic for sanitizers unsupported for target triple.

Summary:
Introduce ToolChain::getSupportedSanitizers() that would return the set
of sanitizers available on given toolchain. By default, these are
sanitizers which don't necessarily require runtime support (i.e.
set from -fsanitize=undefined-trap).

Sanitizers (ASan, DFSan, TSan, MSan etc.) which cannot function
without runtime library are marked as supported only on platforms
for which we actually build these runtimes.

This would allow more fine-grained checks in the future: for instance,
we have to restrict availability of -fsanitize=vptr to Mac OS 10.9+
(PR23539)

Update test cases accrodingly: add tests for certain unsupported
configurations, remove test cases for -fsanitize=vptr + PS4
integration, as we don't build the runtime for PS4 at the moment.

Test Plan: regression test suite

Reviewers: pcc

Subscribers: cfe-commits, filcab, eugenis, thakis, kubabrecka, emaste, rsmith

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

llvm-svn: 239953

9 years agoDevirtualize and pack MCFragment to reduce memory usage.
Pete Cooper [Wed, 17 Jun 2015 22:01:28 +0000 (22:01 +0000)]
Devirtualize and pack MCFragment to reduce memory usage.

MCFragment didn't really need vtables.  The majority of virtual methods were just getters and setters.

This removes the vtables and uses dispatch on the kind to do things like delete which needs to
get the appropriate class.

This reduces memory on the verify use list order test case by about 2MB out of 800MB.

Reviewed by Rafael EspĂ­ndola

llvm-svn: 239952

9 years ago[ELF] Now that there's an API for ELF symbol types in LLVM, use it.
Davide Italiano [Wed, 17 Jun 2015 21:50:51 +0000 (21:50 +0000)]
[ELF] Now that there's an API for ELF symbol types in LLVM, use it.

Common symbols will be handled in a separate patch because it seems
Hexagon redefines the notion of common symbol, which I'm not (yet)
very familiar with.

llvm-svn: 239951

9 years agoRe-land "[X86] Cache variables that only depend on the subtarget"
Reid Kleckner [Wed, 17 Jun 2015 21:50:02 +0000 (21:50 +0000)]
Re-land "[X86] Cache variables that only depend on the subtarget"

Re-instates r239949 without accidentally flipping the sense of UseLEA.

llvm-svn: 239950

9 years agoRevert "[X86] Cache variables that only depend on the subtarget"
Reid Kleckner [Wed, 17 Jun 2015 21:35:02 +0000 (21:35 +0000)]
Revert "[X86] Cache variables that only depend on the subtarget"

This reverts commit r239948, tests seem to be failing.

llvm-svn: 239949

9 years ago[X86] Cache variables that only depend on the subtarget
Reid Kleckner [Wed, 17 Jun 2015 21:31:17 +0000 (21:31 +0000)]
[X86] Cache variables that only depend on the subtarget

There is a one-to-one relationship between X86Subtarget and
X86FrameLowering, but every frame lowering method would previously pull
the subtarget off the MachineFunction and query some subtarget
properties.

Over time, these locals began to grow in complexity and it became
important to keep their names and meaning in sync across all of the
frame lowering methods, leading to duplication. We can eliminate that
duplication by computing them once in the constructor.

llvm-svn: 239948

9 years ago[docs] Fix "WARNING: Title underline too short."
David Majnemer [Wed, 17 Jun 2015 21:21:16 +0000 (21:21 +0000)]
[docs] Fix "WARNING: Title underline too short."

llvm-svn: 239947

9 years agoAdd missing include.
Benjamin Kramer [Wed, 17 Jun 2015 21:08:22 +0000 (21:08 +0000)]
Add missing include.

llvm-svn: 239946

9 years agoCOFF: Simplify. NFC.
Rui Ueyama [Wed, 17 Jun 2015 21:01:56 +0000 (21:01 +0000)]
COFF: Simplify. NFC.

Executor is a convenience class to run an external command.

llvm-svn: 239945

9 years ago[Bitcode] Replace hand-coded little endian handling with Endian.h functions.
Benjamin Kramer [Wed, 17 Jun 2015 20:55:30 +0000 (20:55 +0000)]
[Bitcode] Replace hand-coded little endian handling with Endian.h functions.

No functional change intended.

llvm-svn: 239944

9 years agoAMDGPU: Change unreachable into reported error
Matt Arsenault [Wed, 17 Jun 2015 20:55:25 +0000 (20:55 +0000)]
AMDGPU: Change unreachable into reported error

llvm-svn: 239943

9 years agoremove unnecessary casts; NFC
Sanjay Patel [Wed, 17 Jun 2015 20:54:46 +0000 (20:54 +0000)]
remove unnecessary casts; NFC

llvm-svn: 239942

9 years agoUpdate clang to take into account the changes to personality fns
David Majnemer [Wed, 17 Jun 2015 20:53:19 +0000 (20:53 +0000)]
Update clang to take into account the changes to personality fns

llvm-svn: 239941

9 years agoMove the personality function from LandingPadInst to Function
David Majnemer [Wed, 17 Jun 2015 20:52:32 +0000 (20:52 +0000)]
Move the personality function from LandingPadInst to Function

The personality routine currently lives in the LandingPadInst.

This isn't desirable because:
- All LandingPadInsts in the same function must have the same
  personality routine.  This means that each LandingPadInst beyond the
  first has an operand which produces no additional information.

- There is ongoing work to introduce EH IR constructs other than
  LandingPadInst.  Moving the personality routine off of any one
  particular Instruction and onto the parent function seems a lot better
  than have N different places a personality function can sneak onto an
  exceptional function.

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

llvm-svn: 239940

9 years ago[CodeGenPrepare] Generalize inserted set from truncs to any inst.
Ahmed Bougacha [Wed, 17 Jun 2015 20:44:32 +0000 (20:44 +0000)]
[CodeGenPrepare] Generalize inserted set from truncs to any inst.

It's been used before to avoid infinite loops caused by separate CGP
optimizations undoing one another.  We found one more such issue
caused by r238054.  To avoid it, generalize the "InsertedTruncs"
set to any inst, and use it to avoid touching those again.

llvm-svn: 239938

9 years agoCOFF: Create import library files.
Rui Ueyama [Wed, 17 Jun 2015 20:40:43 +0000 (20:40 +0000)]
COFF: Create import library files.

On Windows, we have to create a .lib file for each .dll.
When linking against DLLs, the linker doesn't use the DLL files,
but instead read a list of dllexported symbols from corresponding
lib files.

A library file containing descriptors of a DLL is called an
import library file.

lib.exe has a feature to create an import library file from a
module-definition file. In this patch, we create a module-definition
file and pass that to lib.exe.

We eventually want to create an import library file by ourselves
to eliminate dependency to lib.exe. For now, we just use the MSVC
tool.

llvm-svn: 239937

9 years ago[modules] If we merge a template, also track that its parameters are merged so
Richard Smith [Wed, 17 Jun 2015 20:39:41 +0000 (20:39 +0000)]
[modules] If we merge a template, also track that its parameters are merged so
that we know when its default arguments should be visible.

llvm-svn: 239936

9 years ago[Hexagon] Adding a number of other tests for min/max instructions and loading i1s.
Colin LeMahieu [Wed, 17 Jun 2015 20:29:33 +0000 (20:29 +0000)]
[Hexagon] Adding a number of other tests for min/max instructions and loading i1s.

llvm-svn: 239935

9 years ago[modules] Improve diagnostic for a template-id that's invalid because a default
Richard Smith [Wed, 17 Jun 2015 20:16:32 +0000 (20:16 +0000)]
[modules] Improve diagnostic for a template-id that's invalid because a default
argument is not visible.

llvm-svn: 239934

9 years agoMove IsUsedInReloc from MCSymbolELF to MCSymbol.
Rafael Espindola [Wed, 17 Jun 2015 20:08:20 +0000 (20:08 +0000)]
Move IsUsedInReloc from MCSymbolELF to MCSymbol.

There is a free bit is MCSymbol and MachO needs the same information.

llvm-svn: 239933

9 years ago[ARM] Replace hard coded metadata arguments in tests with a regex.
Ranjeet Singh [Wed, 17 Jun 2015 19:56:30 +0000 (19:56 +0000)]
[ARM] Replace hard coded metadata arguments in tests with a regex.

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

llvm-svn: 239932

9 years agoCOFF: Fix a test which was failing with debug build.
Rui Ueyama [Wed, 17 Jun 2015 19:28:01 +0000 (19:28 +0000)]
COFF: Fix a test which was failing with debug build.

llvm-svn: 239931

9 years agoCOFF: Support module-definition files.
Rui Ueyama [Wed, 17 Jun 2015 19:19:25 +0000 (19:19 +0000)]
COFF: Support module-definition files.

Module-definition files (.def files) are yet another way to
specify parameters to the linker. You can write a list of dllexported
symbols in module-definition files instead of using /export command
line option. It also supports a few more directives.

The parser code is taken from lib/Driver/WinLinkModuleDef.cpp
with the following modifications.

 - variable names are updated to comply with the LLVM coding style.
 - Instead of returning parsing results as "directive" objects,
   it updates Config object directly.

llvm-svn: 239929

9 years agoCodeGen: Factor out some of the bitset entry creation code. NFC.
Peter Collingbourne [Wed, 17 Jun 2015 19:08:05 +0000 (19:08 +0000)]
CodeGen: Factor out some of the bitset entry creation code. NFC.

llvm-svn: 239927

9 years agoMove xtest to its own file to match the gcc header organization.
Eric Christopher [Wed, 17 Jun 2015 18:42:07 +0000 (18:42 +0000)]
Move xtest to its own file to match the gcc header organization.

llvm-svn: 239926

9 years agoUpdate comments on HLE, RTM, and ADX support for intrinsics.
Eric Christopher [Wed, 17 Jun 2015 18:42:03 +0000 (18:42 +0000)]
Update comments on HLE, RTM, and ADX support for intrinsics.

llvm-svn: 239925

9 years ago[NativeProcessLinux] Use fast memory reads, if the system supports it
Pavel Labath [Wed, 17 Jun 2015 18:38:49 +0000 (18:38 +0000)]
[NativeProcessLinux] Use fast memory reads, if the system supports it

Summary:
Memory reads using the ptrace API need to be executed on a designated thread
and in 4-byte increments. The process_vm_read syscall has no such requirements
and it is about 50 times faster. This patch makes lldb-server use the faster
API if the target kernel supports it. Kernel support for this feature is
determined at runtime. Using process_vm_writev in the same manner is more
complicated since this syscall (unlike ptrace) respects page protection settings
and so it cannot be used to set a breakpoint, since code pages are typically
read-only. However, memory writes are not currently a performance bottleneck as
they happen much more rarely.

Test Plan: all tests continue to pass

Reviewers: ovyalov, vharron

Subscribers: tberghammer, lldb-commits

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

llvm-svn: 239924

9 years agoLowerBitSets: Do not assign names to aliases of unnamed bitset element objects.
Peter Collingbourne [Wed, 17 Jun 2015 18:31:02 +0000 (18:31 +0000)]
LowerBitSets: Do not assign names to aliases of unnamed bitset element objects.

The restriction on unnamed aliases was removed in r239921. Mostly reverts
r239590, but we keep the test.

llvm-svn: 239923

9 years agoAllow aliases to be unnamed.
Rafael Espindola [Wed, 17 Jun 2015 17:53:31 +0000 (17:53 +0000)]
Allow aliases to be unnamed.

If globals can be unnamed, there is no reason for aliases to be different.

The restriction was there since the original implementation in r36435. I
can only guess it was there because of the old bison parser for the old
alias syntax.

llvm-svn: 239921

9 years ago[fixit] Use overwriteChangedFiles() to deal with Windows mapped files
Reid Kleckner [Wed, 17 Jun 2015 17:47:30 +0000 (17:47 +0000)]
[fixit] Use overwriteChangedFiles() to deal with Windows mapped files

Fixes one instance of PR17960.

llvm-svn: 239920

9 years agoUse a range loop. NFC.
Rafael Espindola [Wed, 17 Jun 2015 17:33:37 +0000 (17:33 +0000)]
Use a range loop. NFC.

llvm-svn: 239919

9 years agoCorrect type in for loop to remove signedness warning
Ed Maste [Wed, 17 Jun 2015 17:29:56 +0000 (17:29 +0000)]
Correct type in for loop to remove signedness warning

llvm-svn: 239918

9 years ago[Hexagon] Adding some compare tests, fixing existing XFAILed tests, and removing...
Colin LeMahieu [Wed, 17 Jun 2015 17:19:05 +0000 (17:19 +0000)]
[Hexagon] Adding some compare tests, fixing existing XFAILed tests, and removing mcpu=hexagonv4 since that's the minimum version anyway.

llvm-svn: 239917

9 years agofix typos in comments; NFC
Sanjay Patel [Wed, 17 Jun 2015 16:34:48 +0000 (16:34 +0000)]
fix typos in comments; NFC

llvm-svn: 239916

9 years agoAdd documentation for new backedge mass propagation in irregular loops.
Diego Novillo [Wed, 17 Jun 2015 16:28:22 +0000 (16:28 +0000)]
Add documentation for new backedge mass propagation in irregular loops.

Tweak test cases and rename headerIndexFor -> getHeaderIndex.

llvm-svn: 239915

9 years agoUse named temporaries for directional labels.
Rafael Espindola [Wed, 17 Jun 2015 16:26:47 +0000 (16:26 +0000)]
Use named temporaries for directional labels.

Directional labels can show up in symbol tables (and we have a llvm-mc test for
that). Given that, we need to make sure they are named.

With that out of the way, use setUseNamesOnTempLabels in llvm-mc so that it
too benefits from the memory saving.

llvm-svn: 239914

9 years ago[ArchiveWriter] Use EndianStream. No functional change intended.
Benjamin Kramer [Wed, 17 Jun 2015 16:02:56 +0000 (16:02 +0000)]
[ArchiveWriter] Use EndianStream. No functional change intended.

llvm-svn: 239913

9 years agoHave CMake error out on Windows when user wants OMPT support
Jonathan Peyton [Wed, 17 Jun 2015 15:43:34 +0000 (15:43 +0000)]
Have CMake error out on Windows when user wants OMPT support

Currently, OMPT support requires the weak attribute which isn't supported
on Windows.  This patch has CMake error out when LIBOMP_OMPT_SUPPORT=true
and the users is building on Windows.
http://lists.cs.uiuc.edu/pipermail/openmp-dev/2015-June/000692.html

Patch by Jonas Hahnfeld

llvm-svn: 239912

9 years ago[MC/Dwarf] Encode DW_CFA_advance_loc in target endianess.
Benjamin Kramer [Wed, 17 Jun 2015 15:14:35 +0000 (15:14 +0000)]
[MC/Dwarf] Encode DW_CFA_advance_loc in target endianess.

This matches GNU as output.

llvm-svn: 239911

9 years ago[mips] [IAS] Add support for expanding LASym with a source register operand.
Toma Tabacu [Wed, 17 Jun 2015 14:31:51 +0000 (14:31 +0000)]
[mips] [IAS] Add support for expanding LASym with a source register operand.

Reviewers: dsanders

Reviewed By: dsanders

Subscribers: llvm-commits

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

llvm-svn: 239910

9 years agoclang-tidy: Add checker that warn when macro argument with side effects is repeated...
Daniel Marjamaki [Wed, 17 Jun 2015 14:19:35 +0000 (14:19 +0000)]
clang-tidy: Add checker that warn when macro argument with side effects is repeated in the macro

llvm-svn: 239909

9 years ago[ELF/x86_64] Fix initial-exec TLS access
Adhemerval Zanella [Wed, 17 Jun 2015 14:00:12 +0000 (14:00 +0000)]
[ELF/x86_64] Fix initial-exec TLS access

Current approach for initial-exec in ELF/x86_64 is to create a GOT entry
and change the relocation to R_X86_64_PC32 to be handled as a GOT offfset.
However there are two issues with this approach: 1. the R_X86_64_PC32 is
not really required since the GOT relocation will be handle dynamically and
2. the TLS symbols are not being exported externally and then correct
realocation are not being applied.

This patch fixes the R_X86_64_GOTTPOFF handling by just emitting a
R_X86_64_TPOFF64 dynamically one; it also sets R_X86_64_TPOFF64 to be
handled by runtime one.  For second part, the patches uses a similar
strategy used for aarch64, by reimplementing buildDynamicSymbolTable
from X86_64ExecutableWriter and adding the TLS symbols in the dynamic
symbol table.

Some tests had to be adjusted due the now missing R_X86_64_PC32 relocation.
With this test the simple testcase:

* t1.c:

__thread int t0;
__thread int t1;
__thread int t2;
__thread int t3;

* t0.c:

extern __thread int t0;
extern __thread int t1;
extern __thread int t2;
extern __thread int t3;

__thread int t4;
__thread int t5;
__thread int t6;
__thread int t7;

int main ()
{
  t0 = 1;
  t1 = 2;
  t2 = 3;
  t3 = 4;

  t4 = 5;
  t5 = 6;
  t6 = 7;
  t7 = 8;

  printf ("%i %i %i %i\n", t0, t1, t2, t3);
  printf ("%i %i %i %i\n", t4, t5, t6, t7);

  return 0;
}

Shows correct output for x86_64.

llvm-svn: 239908

9 years agoTweak wording of alignment static_assert messages.
James Y Knight [Wed, 17 Jun 2015 13:53:12 +0000 (13:53 +0000)]
Tweak wording of alignment static_assert messages.

llvm-svn: 239907

9 years ago[ELF] Fix wrong TBSS size
Adhemerval Zanella [Wed, 17 Jun 2015 13:46:07 +0000 (13:46 +0000)]
[ELF] Fix wrong TBSS size

This patch fixes the wrong .tbss segment size generated for cases where
multiple modules have non initialized threads variables.  For instance:

* t0.c

__thread int x0;
__thread int x1;
__thread int x2;

extern __thread int e0;
extern __thread int e1;
extern __thread int e2;
extern __thread int e3;

int foo0 ()
{
  return x0;
}

int main ()
{
  return x0;
}

* t1.c

__thread int e0;
__thread int e1;
__thread int e2;
__thread int e3;

lld is generating (for aarch64):

  [14] .tbss             NOBITS           0000000000401000  00001000
       0000000000000010  0000000000000000 WAT       0     0     4

Where is just taking in consideration the largest tbss segment, not all
from all objects.  ld generates a correct output:

  [17] .tbss             NOBITS           0000000000410dec  00000dec
       000000000000001c  0000000000000000 WAT       0     0     4

This issue is at 'lib/ReaderWriter/ELF/SegmentChunks.cpp' where
Segment<ELFT>::assignVirtualAddress is setting wrong slice values, not taking care
of although tbss segments file size does noy play role in other segment virtual
address placement, its size should still be considered.

llvm-svn: 239906

9 years ago[mips] [IAS] Add support for the B{L,G}{T,E}(U) branch pseudo-instructions.
Toma Tabacu [Wed, 17 Jun 2015 13:20:24 +0000 (13:20 +0000)]
[mips] [IAS] Add support for the B{L,G}{T,E}(U) branch pseudo-instructions.

Summary:
This does not include support for the immediate variants of these pseudo-instructions.
Fixes llvm.org/PR20968.

Reviewers: dsanders

Reviewed By: dsanders

Subscribers: seanbruno, emaste, llvm-commits

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

llvm-svn: 239905

9 years ago[clang-tidy] Move user-defined matches to unnamed namespaces to prevent ODR violations.
Alexander Kornienko [Wed, 17 Jun 2015 13:11:37 +0000 (13:11 +0000)]
[clang-tidy] Move user-defined matches to unnamed namespaces to prevent ODR violations.

llvm-svn: 239904

9 years agoclang-format: clang-format (NFC)
Daniel Jasper [Wed, 17 Jun 2015 13:08:06 +0000 (13:08 +0000)]
clang-format: clang-format (NFC)

llvm-svn: 239903

9 years agoQualify all types used in AST matcher macros.
Alexander Kornienko [Wed, 17 Jun 2015 12:49:00 +0000 (12:49 +0000)]
Qualify all types used in AST matcher macros.

Summary:
Qualify all types used in AST matcher macros. This makes it possible to
put AST matchers in user code into a namespace other than clang::ast_matchers
and this way prevent ODR violations that could happen when a matcher with the
same name is defined in multiple translation units. Updated comments
accordingly.

Reviewers: djasper, klimek

Reviewed By: djasper, klimek

Subscribers: klimek, cfe-commits

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

llvm-svn: 239902

9 years ago[mips] [IAS] Fix LA with relative label operands.
Toma Tabacu [Wed, 17 Jun 2015 12:30:37 +0000 (12:30 +0000)]
[mips] [IAS] Fix LA with relative label operands.

Summary:
Call MCSymbolRefExpr::create() with a MCSymbol* argument, not with a StringRef
of the Symbol's name, in order to avoid creating invalid temporary symbols for
relative labels (e.g. {$,.L}tmp00, {$,.L}tmp10 etc.).

Reviewers: dsanders

Reviewed By: dsanders

Subscribers: llvm-commits

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

llvm-svn: 239901

9 years agoclang-format: Don't generate unnecessary replacements for \r\n line endings.
Daniel Jasper [Wed, 17 Jun 2015 12:23:15 +0000 (12:23 +0000)]
clang-format: Don't generate unnecessary replacements for \r\n line endings.

Patch by Mathieu Champlon. Thank you.

llvm-svn: 239900

9 years ago[mips] [IAS] Add test for SW with relative label operands. NFC.
Toma Tabacu [Wed, 17 Jun 2015 11:46:37 +0000 (11:46 +0000)]
[mips] [IAS] Add test for SW with relative label operands. NFC.

Reviewers: dsanders

Reviewed By: dsanders

Subscribers: llvm-commits

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

llvm-svn: 239899

9 years agoRemove empty directories left after r239657
Alexander Kornienko [Wed, 17 Jun 2015 11:31:18 +0000 (11:31 +0000)]
Remove empty directories left after r239657

llvm-svn: 239898

9 years ago[mips] [IAS] Fix LW with relative label operands.
Toma Tabacu [Wed, 17 Jun 2015 10:43:45 +0000 (10:43 +0000)]
[mips] [IAS] Fix LW with relative label operands.

Summary:
Previously, MCSymbolRefExpr::create() was called with a StringRef of the symbol
name, which it would then search for in the Symbols StringMap (from MCContext).

However, relative labels (which are temporary symbols) are apparently not stored
in the Symbols StringMap, so we end up creating a new {$,.L}tmp symbol
({$,.L}tmp00, {$,.L}tmp10 etc.) each time we create an MCSymbolRefExpr by
passing in the symbol name as a StringRef.

Fortunately, there is a version of MCSymbolRefExpr::create() which takes an
MCSymbol* and we already have an MCSymbol* at that point, so we can just pass
that in instead of the StringRef.

I also removed the local StringRef calls to MCSymbolRefExpr::create() from
expandMemInst(), as those cases can be handled by evaluateRelocExpr() anyway.

Reviewers: dsanders

Reviewed By: dsanders

Subscribers: llvm-commits

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

llvm-svn: 239897

9 years agoFix clang/test/Headers/x86intrin-2.c. _readfsbase_u32() is provided in not i686 but...
NAKAMURA Takumi [Wed, 17 Jun 2015 10:40:51 +0000 (10:40 +0000)]
Fix clang/test/Headers/x86intrin-2.c. _readfsbase_u32() is provided in not i686 but x86-64.

llvm-svn: 239896

9 years ago[OPENMP] Fixed failed test for reduction clause in simd constructs.
Alexey Bataev [Wed, 17 Jun 2015 09:51:18 +0000 (09:51 +0000)]
[OPENMP] Fixed failed test for reduction clause in simd constructs.

llvm-svn: 239895

9 years agoclang-format: [JS] Don't put top-level typescript enums on a single line.
Daniel Jasper [Wed, 17 Jun 2015 09:44:07 +0000 (09:44 +0000)]
clang-format: [JS] Don't put top-level typescript enums on a single line.

This makes this consistent with non-typescript enums.

Also shuffle the language-dependent stuff in mustBreakBefore to a
single location.

Patch initiated by Martin Probst.

llvm-svn: 239894

9 years agoclang-format: [JS] Fix typescript enum formatting.
Daniel Jasper [Wed, 17 Jun 2015 09:44:02 +0000 (09:44 +0000)]
clang-format: [JS] Fix typescript enum formatting.

Patch by Martin Probst.

Before:
  enum {
    A,
    B
  } var x = 1;

After:
  enum {
    A,
    B
  }
  var x = 1;

llvm-svn: 239893

9 years agoclang-format: NFC. Add a function to test whether an annotated line
Daniel Jasper [Wed, 17 Jun 2015 09:43:56 +0000 (09:43 +0000)]
clang-format: NFC. Add a function to test whether an annotated line
starts with a given sequence of tokens. Only the one-token version is
used yet, but other usages are coming up momentarily.

llvm-svn: 239892

9 years ago[PM/AA] Update Polly for r239886 which removed UnknownSize from
Chandler Carruth [Wed, 17 Jun 2015 08:29:32 +0000 (08:29 +0000)]
[PM/AA] Update Polly for r239886 which removed UnknownSize from
AliasAnalysis by getting it from its newly canonical home of
MemoryLocation::UnknownSize.

llvm-svn: 239890

9 years ago[OPENMP] Code reformatting for omp simd codegen, NFC.
Alexey Bataev [Wed, 17 Jun 2015 07:45:51 +0000 (07:45 +0000)]
[OPENMP] Code reformatting for omp simd codegen, NFC.

llvm-svn: 239889

9 years agoAVX-512: cvtusi2ss/d intrinsics.
Igor Breger [Wed, 17 Jun 2015 07:23:57 +0000 (07:23 +0000)]
AVX-512: cvtusi2ss/d intrinsics.
Change builtin function name and signature ( add third parameter - rounding mode ).
Added tests for intrinsics.

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

llvm-svn: 239888

9 years ago[PM/AA] Suffix lots of member variables that directly use enumeration
Chandler Carruth [Wed, 17 Jun 2015 07:21:41 +0000 (07:21 +0000)]
[PM/AA] Suffix lots of member variables that directly use enumeration
names for counts with the word 'Count' to make them less ambiguous.

This will be an actual error if we use unscoped enums for any of these,
and generally this seems much clearer to read.

Also, use clang-format to normalize the formatting of this code which
seems to have been needlessly odd.

No functionality changed here.

llvm-svn: 239887

9 years ago[PM/AA] Remove the UnknownSize static member from AliasAnalysis.
Chandler Carruth [Wed, 17 Jun 2015 07:21:38 +0000 (07:21 +0000)]
[PM/AA] Remove the UnknownSize static member from AliasAnalysis.

This is now living in MemoryLocation, which is what it pertains to. It
is also an enum there rather than a static data member which is left
never defined.

llvm-svn: 239886

9 years ago[PM/AA] Remove the Location typedef from the AliasAnalysis class now
Chandler Carruth [Wed, 17 Jun 2015 07:18:54 +0000 (07:18 +0000)]
[PM/AA] Remove the Location typedef from the AliasAnalysis class now
that it is its own entity in the form of MemoryLocation, and update all
the callers.

This is an entirely mechanical change. References to "Location" within
AA subclases become "MemoryLocation", and elsewhere
"AliasAnalysis::Location" becomes "MemoryLocation". Hope that helps
out-of-tree folks update.

llvm-svn: 239885

9 years ago[PM/AA] Split the location computation out of getArgLocation so the
Chandler Carruth [Wed, 17 Jun 2015 07:12:40 +0000 (07:12 +0000)]
[PM/AA] Split the location computation out of getArgLocation so the
virtual interface on AliasAnalysis only deals with ModRef information.

This interface was both computing memory locations by using TLI and
other tricks to estimate the size of memory referenced by an operand,
and computing ModRef information through similar investigations. This
change narrows the scope of the virtual interface on AliasAnalysis
slightly.

Note that all of this code could live in BasicAA, and be done with
a single investigation of the argument, if it weren't for the fact that
the generic code in AliasAnalysis::getModRefBehavior for a callsite
calls into the virtual aspect of (now) getArgModRefInfo. But this
patch's arrangement seems a not terrible way to go for now.

The other interesting wrinkle is how we could reasonably extend LLVM
with support for custom memory location sizes and mod/ref behavior for
library routines. After discussions with Hal on the review, the
conclusion is that this would be best done by fleshing out the much
desired support for extensions to TLI, and support these types of
queries in that interface where we would likely be doing other library
API recognition and analysis.

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

llvm-svn: 239884

9 years agoUpdate the intel intrinsic headers to use the target attribute support.
Eric Christopher [Wed, 17 Jun 2015 07:09:32 +0000 (07:09 +0000)]
Update the intel intrinsic headers to use the target attribute support.

This involved removing the conditional inclusion and replacing them
with target attributes matching the original conditional inclusion
and checks. The testcase update removes the macro checks for each
file and replaces them with usage of the __target__ attribute, e.g.:

int __attribute__((__target__(("sse3")))) foo(int a) {
  _mm_mwait(0, 0);
  return 4;
}

This usage does require the enclosing function have the requisite
__target__ attribute for inlining and code generation - also for
any macro intrinsic uses in the enclosing function. There's no change
for existing uses of the intrinsic headers.

llvm-svn: 239883

9 years agoUse a define for per-file function attributes for the Intel intrinsic headers.
Eric Christopher [Wed, 17 Jun 2015 07:09:20 +0000 (07:09 +0000)]
Use a define for per-file function attributes for the Intel intrinsic headers.

This is a precursor to changing them to use the new target attribute
code.

llvm-svn: 239882

9 years ago[OPENMP] Supported reduction clause in omp simd construct.
Alexey Bataev [Wed, 17 Jun 2015 06:21:39 +0000 (06:21 +0000)]
[OPENMP] Supported reduction clause in omp simd construct.

The following code is generated for reduction clause within 'omp simd' loop construct:
#pragma omp simd reduction(op:var)
for (...)
  <body>

alloca priv_var
priv_var = <initial reduction value>;
<loop_start>:
<body> // references to original 'var' are replaced by 'priv_var'
<loop_end>:
var op= priv_var;

llvm-svn: 239881

9 years agoRevert "AArch64: Use CMP;CCMP sequences for and/or/setcc trees."
Matthias Braun [Wed, 17 Jun 2015 04:02:32 +0000 (04:02 +0000)]
Revert "AArch64: Use CMP;CCMP sequences for and/or/setcc trees."

The patch triggers a miscompile on SPEC 2006 403.gcc with the (ref)
200.i and scilab.i inputs. I opened PR23866 to track analysis of this.

This reverts commit r238793.

llvm-svn: 239880

9 years agoparser: wordsmith diagnostic message
Saleem Abdulrasool [Wed, 17 Jun 2015 03:54:21 +0000 (03:54 +0000)]
parser: wordsmith diagnostic message

Address post-commit commit about the wording of the warning.

llvm-svn: 239879

9 years agoBasic: tweak whitespace in Attr.td
Saleem Abdulrasool [Wed, 17 Jun 2015 03:54:19 +0000 (03:54 +0000)]
Basic: tweak whitespace in Attr.td

Separate two class definitions that had been merged into a single line.  NFC.

llvm-svn: 239878

9 years agoTry to fix the MSVC build.
Rafael Espindola [Wed, 17 Jun 2015 03:13:26 +0000 (03:13 +0000)]
Try to fix the MSVC build.

llvm-svn: 239877

9 years ago[Hexagon] Adding MC ELF streamer and updating addend relocation test which shows...
Colin LeMahieu [Wed, 17 Jun 2015 03:06:16 +0000 (03:06 +0000)]
[Hexagon] Adding MC ELF streamer and updating addend relocation test which shows correct ELF symbol.

llvm-svn: 239876

9 years ago[.gitignore] ignore vim swap files harder
Sean Silva [Wed, 17 Jun 2015 02:21:35 +0000 (02:21 +0000)]
[.gitignore] ignore vim swap files harder

This matches the patterns for vim swap files in llvm/.gitignore

llvm-svn: 239875

9 years agoRevert r239873 - I actually want to think some more about this
Enrico Granata [Wed, 17 Jun 2015 02:11:48 +0000 (02:11 +0000)]
Revert r239873 - I actually want to think some more about this

llvm-svn: 239874

9 years agoFix an issue where the oneliner printing of variables would ignore custom formatting
Enrico Granata [Wed, 17 Jun 2015 02:06:24 +0000 (02:06 +0000)]
Fix an issue where the oneliner printing of variables would ignore custom formatting

Because vector types use their formats in special ways (i.e. children get generated based on them), this change by itself would cause a regression in printing vector types with some custom formats
Work around that issue by special casing vector types out of this format-passdown mode. I believe there is a more general feature to be designed in this space, but until I see more cases of interest, I am going to leave this as a special case

Fixes rdar://20810062

llvm-svn: 239873

9 years agoFix alignment issues in LLVM.
James Y Knight [Wed, 17 Jun 2015 01:21:20 +0000 (01:21 +0000)]
Fix alignment issues in LLVM.

Adds static_asserts to ensure alignment of concatenated objects is
correct, and fixes them where they are not.

Also changes the definition of AlignOf to use constexpr, except on
MSVC, to avoid enum comparison warnings from GCC.

(There's not too much of this in llvm itself, most of the fun is in
clang).

This seems to make LLVM actually work without Bus Error on 32bit
sparc.

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

llvm-svn: 239872

9 years agoHandle forward referenced function when streaming bitcode.
Rafael Espindola [Wed, 17 Jun 2015 01:15:47 +0000 (01:15 +0000)]
Handle forward referenced function when streaming bitcode.

Without this the included unit test would assert in

  assert(BasicBlockFwdRefs.empty() && "Unresolved blockaddress fwd references");

llvm-svn: 239871

9 years agoHandle MaterializeAll in getLazyBitcodeModuleImpl. NFC.
Rafael Espindola [Wed, 17 Jun 2015 00:40:56 +0000 (00:40 +0000)]
Handle MaterializeAll in getLazyBitcodeModuleImpl. NFC.

This just handles both cases in the same place.

Extracted from a patch by Karl Schimpf.

llvm-svn: 239870