Commit Graph

202061 Commits

Author SHA1 Message Date
Justin Bogner
cb337035f2 AST: Fix printing GNU old-style field designators
Allows StmtPrinter to print old style field designators in
initializers, fixing an issue where we would print the following
invalid code:

  struct A a = {b: = 3, .c = 4};

Patch by Nick Sumner. Thanks!

llvm-svn: 238517
2015-05-28 22:19:36 +00:00
Chris Bieneman
2607a0d655 Fixing broken bots after r238505.
Need non-const iterator inserts too. These failures seem to be due to differences in the versions of libstdc++ on various operating systems.

llvm-svn: 238516
2015-05-28 22:18:34 +00:00
David Majnemer
4e6438c534 Add testcase for r238503.
llvm-svn: 238515
2015-05-28 22:12:27 +00:00
Reid Kleckner
fe4d491bd9 [WinEH] Start inserting state number stores for C++ EH
This moves all the state numbering code for C++ EH to WinEHPrepare so
that we can call it from the X86 state numbering IR pass that runs
before isel.

Now we just call the same state numbering machinery and insert a bunch
of stores. It also populates MachineModuleInfo with information about
the current function.

llvm-svn: 238514
2015-05-28 22:00:24 +00:00
Rafael Espindola
bb35ebd189 Don't special case undefined symbol when deciding the symbol order.
ELF has no restrictions on where undefined symbols go relative to other defined
symbols. In fact, gas just sorts them together. Do the same.

This was there since r111174 probably just because the MachO writer has it.

llvm-svn: 238513
2015-05-28 21:59:34 +00:00
Sean Callanan
cc3489f662 Added a test that makes sure that structs returned
from expressions return intact.

<rdar://problem/21146609>

llvm-svn: 238512
2015-05-28 21:58:52 +00:00
Diego Novillo
6555adb110 Update documentation for llvm-profdata.
These options have been present for a while, but I had never updated the
documentation. Fixed.

llvm-svn: 238511
2015-05-28 21:57:17 +00:00
Chaoren Lin
842b214ac1 Simplify regex in TestDataFormatterUnordered.py for better readability.
Summary:
Using `(match){3}` instead of `matchmatchmatch`.
This is an update to D10078.

Test Plan: no change in test behavior.

Reviewers: clayborg, sivachandra

Reviewed By: sivachandra

Subscribers: lldb-commits

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

llvm-svn: 238510
2015-05-28 21:52:07 +00:00
Chris Bieneman
fa150d2aee Fixing the polly build.
I broke the polly build in r238505. This fixes the failure by adding non-const iterator erase methods to cl::list_storage.

llvm-svn: 238509
2015-05-28 21:51:52 +00:00
Andy Ayers
b63298e0c8 Revise test to run llc and llvm-mc separately.
Differential Revision: http://reviews.llvm.org/D10066

llvm-svn: 238508
2015-05-28 21:49:50 +00:00
Wei Mi
e2538b5639 Enable exitValue rewrite only when the cost of expansion is low.
The patch evaluates the expansion cost of exitValue in indVarSimplify pass, and only does the rewriting when the expansion cost is low or loop can be deleted with the rewriting. It provides an option "-replexitval=" to control the default aggressiveness of the exitvalue rewriting. It also fixes some missing cases in SCEVExpander::isHighCostExpansionHelper to enhance the evaluation of SCEV expansion cost.

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

llvm-svn: 238507
2015-05-28 21:49:07 +00:00
Rafael Espindola
3a5d3cce80 Remove a trivial forwarding function. NFC.
llvm-svn: 238506
2015-05-28 21:36:02 +00:00
Chris Bieneman
72ea707fe7 Re-landing "Refactoring cl::list_storage from "is a" to "has a" std::vector."
Originally landed r238485

MSVC resolves identifiers differently from Clang and GCC, this resulted in build bot failures. This pach re-lands r238485 and fixes the build failures.

llvm-svn: 238505
2015-05-28 21:31:22 +00:00
Diego Novillo
46ab35d680 Improve user documentation on profiling.
This clarifies the relationship between instrumentation and sampling based PGO,
code coverage analysis and the different formats supported by sample
profiling.

llvm-svn: 238504
2015-05-28 21:30:04 +00:00
David Majnemer
22d2b02706 [SelectionDAG] Scalar shift amounts may require legalization
The shift amount may be too small to cope with promoted left hand side,
make sure to promote it as well.

This fixes PR23664.

llvm-svn: 238503
2015-05-28 21:29:59 +00:00
Reid Kleckner
bfcad2f181 Remove debug prints from r238487
llvm-svn: 238501
2015-05-28 21:23:53 +00:00
Chandler Carruth
25c6a22e43 [omp] Loosen the driver test enough so that overriding the defaults
works well for folks.

This isn't terribly clean (sadly) but after chatting with both Eric and
Richard, nothing cleaner really emerged. The clean way of doing this is
a *lot* of work for extremely little benefit here.

llvm-svn: 238500
2015-05-28 21:20:14 +00:00
Chaoren Lin
7f9511409b Resubmitting r238459 and r238460 with fix for Linux.
llvm-svn: 238499
2015-05-28 21:19:31 +00:00
Chandler Carruth
c6625c63e7 [omp] Fix a typo in a comment and a line I forgot to clang-format that
Justin pointed out in post-commit review.

llvm-svn: 238498
2015-05-28 21:10:31 +00:00
Ying Chen
b6762734f0 Revert "Move inlined cxa_demangle.cpp to a separate file."
This reverts commit 8cb47a2140f3e93a34597fc9f11c8cd96130076d.

llvm-svn: 238497
2015-05-28 21:06:36 +00:00
Ying Chen
fd6c7ad3ce Revert "Allow both MSVC and Itanium mangling schemes."
Cause build break.

This reverts commit 6d986061393f2863fec739e04412281148acc1f3.

llvm-svn: 238496
2015-05-28 21:06:33 +00:00
Ying Chen
1135e709c0 Skip ThreadStateTestCase.test_state_after_continue_with_dwarf on Darwin
Summary:
- This test cause Python crash randomly on darwin builder
- Tracked by bug 'llvm.org/pr23669'

Test Plan: ./dotest.py -m --executable /Users/lldb_build/testSlave/buildDir/lldb.src/build/Debug/lldb --framework /Users/lldb_build/testSlave/buildDir/lldb.src/build/Debug/LLDB.framework -A x86_64 -C clang -p TestThreadStates.py

Reviewers: chaoren, vharron

Subscribers: lldb-commits

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

llvm-svn: 238495
2015-05-28 21:03:26 +00:00
Colin LeMahieu
0b5890d411 [llvm] Adding vdtor to fix warning.
llvm-svn: 238494
2015-05-28 20:59:08 +00:00
Greg Clayton
2d7ab874c1 Fix the Xcode build after the recent new demangling files were added.
llvm-svn: 238493
2015-05-28 20:57:55 +00:00
Rafael Espindola
5e9ed90279 Inline trivial method. NFC.
llvm-svn: 238492
2015-05-28 20:53:09 +00:00
Chris Bieneman
bcb6ddc0a4 Revert "Refactoring cl::list_storage from "is a" to "has a" std::vector."
This reverts commit 117715ca0613d3db144241499401f2ec5398f1d5.

llvm-svn: 238491
2015-05-28 20:47:02 +00:00
Reid Kleckner
80956a0142 Disable x86 tail call optimizations that jump through GOT
For x86 targets, do not do sibling call optimization when materializing
the callee's address would require a GOT relocation. We can still do
tail calls to internal functions, hidden functions, and protected
functions, because they do not require this kind of relocation. It is
still possible to get GOT relocations when the user explicitly asks for
it with musttail or -tailcallopt, both of which are supposed to
guarantee TCO.

Based on a patch by Chih-hung Hsieh.

Reviewers: srhines, timmurray, danalbert, enh, void, nadav, rnk

Subscribers: joerg, davidxl, llvm-commits

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

llvm-svn: 238487
2015-05-28 20:44:28 +00:00
Rui Ueyama
322b2c413d COFF: Return an error_code directly.
llvm-svn: 238486
2015-05-28 20:39:29 +00:00
Chris Bieneman
f2d1c73cf3 Refactoring cl::list_storage from "is a" to "has a" std::vector.
Summary: This isn't necessarily an ideal change, and I want to at least reduce the API surface area, but for the new API we really shouldn't be relying on cl::list being a std::vector.

Reviewers: chandlerc

Reviewed By: chandlerc

Subscribers: llvm-commits

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

llvm-svn: 238485
2015-05-28 20:38:12 +00:00
Evgeniy Stepanov
bab1a075df [asan] Add new(unsigned int) to ASan interface list.
Also, sized-delete with size_t == unsigned int.
These guys appear when building for Android with gnu-stl.

Fixes a number of ASan tests in that particular configuration.

llvm-svn: 238484
2015-05-28 20:37:50 +00:00
Daniel Sanders
b34dab3d00 Revert r238427 - [mips] Make TTypeEncoding indirect to allow .eh_frame to be read-only.
It caused a smaller number of failures than the previous attempt at committing but still caused a couple on the llvm-linux-mips builder. Reverting while I investigate the remainder.

llvm-svn: 238483
2015-05-28 20:30:32 +00:00
Rui Ueyama
3500f6667a COFF: Split Driver.cpp to Driver.cpp and DriverUtils.cpp. NFC.
The previous implementation's driver file is cluttered by lots of
small functions, and it was hard to find important functions.
Make a separate file to prevent that issue.

llvm-svn: 238482
2015-05-28 20:30:06 +00:00
Alexey Samsonov
6ecbd064e1 Object, ELF: Use error code instead of calling report_fatal_error()
Make createELFObjectFile() return object_error::parse_failed on
encountering invalid ELF file, instead of crashing the program.

llvm-svn: 238481
2015-05-28 20:25:42 +00:00
Rafael Espindola
e48421f6fc Remove structure field that can be computed just before use.
llvm-svn: 238480
2015-05-28 20:25:29 +00:00
Rafael Espindola
d7f10f0576 Avoid warnings when building without asserts.
llvm-svn: 238479
2015-05-28 20:19:31 +00:00
Rui Ueyama
d52824d361 Rename InputFile::Name -> InputFile::Filename.
Other local variables shadowed the member variable.
Rename to make that a bit longer.

llvm-svn: 238478
2015-05-28 20:16:25 +00:00
Rafael Espindola
cfbd35c9ad Move these vectors to the only function where they are used.
llvm-svn: 238477
2015-05-28 20:11:34 +00:00
Sean Callanan
8ebc973133 If we see an external function in the symbols, make
it an extern "C" function instead of a C++ function
so that Clang doesn't emit a mangled function reference.

Also removed the hack in ClangExpressionDeclMap that
works around this.

llvm-svn: 238476
2015-05-28 20:07:44 +00:00
Sean Callanan
235de0aed3 Don't crash if we don't have a process and need
to check for alternate manglings.

llvm-svn: 238475
2015-05-28 20:06:40 +00:00
Rui Ueyama
9aefa0c6b9 Fix non-debug build.
llvm-svn: 238474
2015-05-28 20:04:51 +00:00
Peter Collingbourne
450fbee6b2 Thumb2: Modify codegen for memcpy intrinsic to prefer LDM/STM.
We were previously codegen'ing these as regular load/store operations and
hoping that the register allocator would allocate registers in ascending order
so that we could apply an LDM/STM combine after register allocation. According
to the commit that first introduced this code (r37179), we planned to teach
the register allocator to allocate the registers in ascending order. This
never got implemented, and up to now we've been stuck with very poor codegen.

A much simpler approach for achiveing better codegen is to create LDM/STM
instructions with identical sets of virtual registers, let the register
allocator pick arbitrary registers and order register lists when printing an
MCInst. This approach also avoids the need to repeatedly calculate offsets
which ultimately ought to be eliminated pre-RA in order to decrease register
pressure.

This is implemented by lowering the memcpy intrinsic to a series of SD-only
MCOPY pseudo-instructions which performs a memory copy using a given number
of registers. During SD->MI lowering, we lower MCOPY to LDM/STM. This is a
little unusual, but it avoids the need to encode register lists in the SD,
and we can take advantage of SD use lists to decide whether to use the _UPD
variant of the instructions.

Fixes PR9199.

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

llvm-svn: 238473
2015-05-28 20:02:45 +00:00
Reid Kleckner
e2e57faa7d [WinEH] Remove debugging dump() call
llvm-svn: 238472
2015-05-28 20:02:05 +00:00
Rafael Espindola
0cbea2997c Merge redundant loops. NFC.
llvm-svn: 238471
2015-05-28 20:00:13 +00:00
Zachary Turner
386aafa6e3 Remove unused #includes of ScriptInterpreterPython.h
llvm-svn: 238470
2015-05-28 19:57:03 +00:00
Zachary Turner
c48ec9d0ff Including <thread> with MSVC is buggy, use a workaround here.
llvm-svn: 238469
2015-05-28 19:56:43 +00:00
Duncan P. N. Exon Smith
8d3197f657 AsmPrinter: Stop exposing underlying DIE children list, NFC
Update `DIE` API to hide the implementation of `DIE::Children` so we can
swap it out.

llvm-svn: 238468
2015-05-28 19:56:34 +00:00
Zachary Turner
c7a7c8acca Refactor test runner to print sub-test-case pass/fail rate.
llvm-svn: 238467
2015-05-28 19:56:26 +00:00
Benjamin Kramer
ddf1cda2c2 [Format] Skip creating temporary std::strings when filling another string.
No functional change intended.

llvm-svn: 238466
2015-05-28 19:55:49 +00:00
Rafael Espindola
b32552faf6 Simplify LastLocalSymbolIndex computation. NFC.
llvm-svn: 238465
2015-05-28 19:46:36 +00:00
Rui Ueyama
d6fefba447 COFF: Teach Chunk to write to a mmap'ed output file.
Previously Writer directly handles writes to a file.
Chunks needed to give Writer a continuous chunk of memory.
That was inefficent if you construct data in chunks because
it would require two memory copies (one to construct a chunk
and the other is to write that to a file).

This patch teaches chunk to write directly to a file.
From readability point of view, this is also good because
you no longer have to call hasData() before calling getData().

llvm-svn: 238464
2015-05-28 19:45:43 +00:00