6556 Commits

Author SHA1 Message Date
Amaury Sechet
12e138e326 Add Support to llvm-c-test dependancies
Summary: As per title. It is required and don't get linked in in some builds.

Reviewers: chapuni, joker.eph

Subscribers: llvm-commits

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@259853 91177308-0d34-0410-b5e6-96231b3b80d8
2016-02-05 00:19:50 +00:00
Easwaran Raman
4bf45e8313 Refactor profile summary support code. NFC.
Summary computation is not just for instrumented profiling and so I have moved
the ProfileSummary class to ProfileCommon.h (named so to allow code unrelated
to summary but common to instrumented and sampled profiling to be placed there)

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



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@259846 91177308-0d34-0410-b5e6-96231b3b80d8
2016-02-04 23:34:31 +00:00
Amaury Sechet
88242800f7 Improve testing for the C API
Summary:
This basically add an echo test case in C. The support is limited right now, but full support would just be too much to review at once.

The echo test case simply get a module as input and try to output the same exact module. This allow to check the both reading and writing API are working as expected.

I want to improve this test over time to support more and more of the API, in order to improve coverage (coverage is quite poor right now).

Test Plan: Run the test.

Reviewers: chandlerc, bogner

Subscribers: llvm-commits

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@259844 91177308-0d34-0410-b5e6-96231b3b80d8
2016-02-04 23:26:19 +00:00
David Majnemer
b4612d8832 Correctly handle {Always,Never}StepIntoLine
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@259806 91177308-0d34-0410-b5e6-96231b3b80d8
2016-02-04 17:57:12 +00:00
David Majnemer
75a2a42e95 Add support for S_DEFRANGE and S_DEFRANGE_SUBFIELD
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@259805 91177308-0d34-0410-b5e6-96231b3b80d8
2016-02-04 17:37:30 +00:00
David Majnemer
cae51a87c8 Make the dumper's output for variable ranges easier to read
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@259804 91177308-0d34-0410-b5e6-96231b3b80d8
2016-02-04 17:29:13 +00:00
David Majnemer
ca504cc9cf Print the OffsetStart field's relocation
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@259723 91177308-0d34-0410-b5e6-96231b3b80d8
2016-02-03 22:45:21 +00:00
David Majnemer
62dc24c965 [llvm-readobj] Add support for dumping S_DEFRANGE symbols
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@259719 91177308-0d34-0410-b5e6-96231b3b80d8
2016-02-03 22:36:46 +00:00
Hemant Kulkarni
b99b60dd85 Correct size calculations for ELF files
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@259578 91177308-0d34-0410-b5e6-96231b3b80d8
2016-02-02 21:41:49 +00:00
Eugene Zelenko
380d47d651 Fix Clang-tidy readability-redundant-control-flow warnings; other minor fixes.
Differential revision: http://reviews.llvm.org/D16793


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@259539 91177308-0d34-0410-b5e6-96231b3b80d8
2016-02-02 18:20:45 +00:00
Reid Kleckner
617bba8af8 [codeview] Wire up the .cv_inline_linetable directive
This directive emits the binary annotations that describe line and code
deltas in inlined call sites. Single-stepping through inlined frames in
windbg now works.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@259535 91177308-0d34-0410-b5e6-96231b3b80d8
2016-02-02 17:41:18 +00:00
Davide Italiano
88b3e3ebd1 [llvm-nm] Simplify the code a bit. NFCI.
Fix a style violation while I'm here.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@259391 91177308-0d34-0410-b5e6-96231b3b80d8
2016-02-01 19:22:16 +00:00
Frederic Riss
870f3ff0d2 [dsymutil] Skip mach-o paired relocations
Noticed while working on scattered relocations.
I do not think these relocs can actually happen in the debug_info section,
but if they happen the code would mishandle them. Explicitely skip them
and warn if we encounter one.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@259341 91177308-0d34-0410-b5e6-96231b3b80d8
2016-02-01 04:43:14 +00:00
Frederic Riss
f768b25cef [dsymutil] Support scattered relocs.
Although it seems like clang will never emit scattered relocations in
the debug information (at least I couldn't find a way), we have too
support them for the benefit of other compilers.
As clang doesn't generate them, the included testcase was produced
from hacked up assembly.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@259339 91177308-0d34-0410-b5e6-96231b3b80d8
2016-02-01 03:44:22 +00:00
Frederic Riss
99a07120d4 [dsymutil] Fix handling of common symbols.
llvm-dsymutil was misinterpreting the value of common symbols as their
address when it actually contains their size. This didn't impact
llvm-dsymutil's ability to link the debug information for common symbols
because these are always found by name and not by address. Things could
however go wrong when the size of a common object matched the object
file address of another symbol. Depending on the link order of the symbols
the common object might incorrectly evict this other object from the
address to symbol mapping, and then link the evicted symbol with a wrong
binary address.

Use the new ability to have symbols without an object file address to fix
this.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@259318 91177308-0d34-0410-b5e6-96231b3b80d8
2016-01-31 04:29:34 +00:00
Frederic Riss
c5413fcc11 [dsymutil] Allow debug map mappings with no object file address. NFC
This change just changes the data structure that ties symbol names,
object file address and linked binary addresses to accept mappings
with no object file address. Such symbol mappings are not fed into
the debug map yet, so this patch is NFC.
A subsequent patch will make use of this functionality for common
symbols.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@259317 91177308-0d34-0410-b5e6-96231b3b80d8
2016-01-31 04:29:22 +00:00
Matthias Braun
5e08bd340a Avoid overly large SmallPtrSet/SmallSet
These sets perform linear searching in small mode so it is never a good
idea to use SmallSize/N bigger than 32.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@259283 91177308-0d34-0410-b5e6-96231b3b80d8
2016-01-30 01:24:31 +00:00
Davide Italiano
c98cfb2adf [llvm-nm] Add a comment to explain why we initialize MC.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@259266 91177308-0d34-0410-b5e6-96231b3b80d8
2016-01-29 23:38:05 +00:00
Vedant Kumar
0c94d7d441 [Profiling] Add a -sparse mode to llvm-profdata merge
Add an option to llvm-profdata merge for writing out sparse indexed
profiles. These profiles omit InstrProfRecords for functions which are
never executed.

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@259258 91177308-0d34-0410-b5e6-96231b3b80d8
2016-01-29 22:54:45 +00:00
Reid Kleckner
78ee0ee137 [CodeView] Fix dumping the is_stmt bit from the line table
Bug pointed out by George Rimar.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@259205 91177308-0d34-0410-b5e6-96231b3b80d8
2016-01-29 16:39:04 +00:00
Akira Hatanaka
0dc389daac [llvm-bcanalyzer] Dump bitcode wrapper header
This patch enables llvm-bcanalyzer to print the bitcode wrapper header
if the file has one, which is needed to test the changes made in
r258627 (bitcode-wrapper-header-armv7m.ll is the test case for r258627).

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


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@259162 91177308-0d34-0410-b5e6-96231b3b80d8
2016-01-29 05:55:09 +00:00
Reid Kleckner
1689efb4d2 Reland "[CodeView] Use assembler directives for line tables"
This reverts commit r259126 and relands r259117.

This time with updated library dependencies.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@259130 91177308-0d34-0410-b5e6-96231b3b80d8
2016-01-29 00:49:42 +00:00
Reid Kleckner
ae8e13919a Revert "[CodeView] Use assembler directives for line tables"
This reverts commit r259117.

The LineInfo constructor is defined in the codeview library and we have
to link against it now. Doing that isn't trivial, so reverting for now.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@259126 91177308-0d34-0410-b5e6-96231b3b80d8
2016-01-29 00:13:28 +00:00
Reid Kleckner
cb176fdd52 Add missing raw_ostream include
Prior to r259115 this was coming via LTOModule.h and MCContext.h.

Apparently this target is not built by 'check'. =(

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@259124 91177308-0d34-0410-b5e6-96231b3b80d8
2016-01-29 00:03:34 +00:00
Reid Kleckner
778020bb36 Silence gcc warning about ternary and enumerations
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@259123 91177308-0d34-0410-b5e6-96231b3b80d8
2016-01-28 23:59:35 +00:00
Reid Kleckner
200dc330a0 [CodeView] Use assembler directives for line tables
Adds a new family of .cv_* directives to LLVM's variant of GAS syntax:

- .cv_file: Similar to DWARF .file directives

- .cv_loc: Similar to the DWARF .loc directive, but starts with a
  function id. CodeView line tables are emitted by function instead of
  by compilation unit, so we needed an extra field to communicate this.
  Rather than overloading the .loc direction further, we decided it was
  better to have our own directive.

- .cv_stringtable: Emits the codeview string table at the current
  position. Currently this just contains the filenames as
  null-terminated strings.

- .cv_filechecksums: Emits the file checksum table for all files used
  with .cv_file so far. There is currently no support for emitting
  actual checksums, just filenames.

This moves the line table emission code down into the assembler.  This
is in preparation for implementing the inlined call site line table
format. The inline line table format encoding algorithm requires knowing
the absolute code offsets, so it must run after the assembler has laid
out the code.

David Majnemer collaborated on this patch.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@259117 91177308-0d34-0410-b5e6-96231b3b80d8
2016-01-28 23:31:52 +00:00
Davide Italiano
1db4cdc3b1 [llvm-nm] Remove redundant check for file validity.
We already perform it at the beginning of the function so we can't
arrive here with an invalid object. Also, add a test so that bugs
won't sneak in the future.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@258982 91177308-0d34-0410-b5e6-96231b3b80d8
2016-01-27 20:27:44 +00:00
Benjamin Kramer
b8c1bbf870 One more batch of self-containing headers.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@258974 91177308-0d34-0410-b5e6-96231b3b80d8
2016-01-27 19:29:56 +00:00
Benjamin Kramer
06342012ac Make more headers self-contained.
A lot of this comes from the new complete type requirement of DenseMap.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@258956 91177308-0d34-0410-b5e6-96231b3b80d8
2016-01-27 18:03:37 +00:00
Benjamin Kramer
b714d34a7e Move SafeStack to CodeGen.
It depends on the target machinery, that's not available for
instrumentation passes.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@258942 91177308-0d34-0410-b5e6-96231b3b80d8
2016-01-27 16:53:42 +00:00
Benjamin Kramer
520b685692 Remove superfluous call to std::to_string that's breaking the cygwin build.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@258928 91177308-0d34-0410-b5e6-96231b3b80d8
2016-01-27 13:22:39 +00:00
Benjamin Kramer
030c9dc308 Move MCTargetAsmParser.h to llvm/MC/MCParser where it belongs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@258917 91177308-0d34-0410-b5e6-96231b3b80d8
2016-01-27 10:01:28 +00:00
Chris Bieneman
caeade4234 Remove autoconf support
Summary:
This patch is provided in preparation for removing autoconf on 1/26. The proposal to remove autoconf on 1/26 was discussed on the llvm-dev thread here: http://lists.llvm.org/pipermail/llvm-dev/2016-January/093875.html

"I felt a great disturbance in the [build system], as if millions of [makefiles] suddenly cried out in terror and were suddenly silenced. I fear something [amazing] has happened."
- Obi Wan Kenobi

Reviewers: chandlerc, grosbach, bob.wilson, tstellarAMD, echristo, whitequark

Subscribers: chfast, simoncook, emaste, jholewinski, tberghammer, jfb, danalbert, srhines, arsenm, dschuff, jyknight, dsanders, joker.eph, llvm-commits

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@258861 91177308-0d34-0410-b5e6-96231b3b80d8
2016-01-26 21:29:08 +00:00
Hemant Kulkarni
84bca23f8d Fix comparison warning (r258845)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@258856 91177308-0d34-0410-b5e6-96231b3b80d8
2016-01-26 20:38:15 +00:00
Hemant Kulkarni
8d6d9f5096 Fixes build break introduced by r258845
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@258854 91177308-0d34-0410-b5e6-96231b3b80d8
2016-01-26 20:28:15 +00:00
Davide Italiano
faaeb2ecd8 [llvm-nm] Roll several conditions into a single if. NFCI.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@258846 91177308-0d34-0410-b5e6-96231b3b80d8
2016-01-26 19:57:42 +00:00
Hemant Kulkarni
8822b47f7c [llvm-readobj] Add -elf-section-groups option
Adds a way to inspect SHT_GROUP sections in ELF objects.
Displays signature, member sections of these sections.

Differential revision: http://reviews.llvm.org/D16555

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@258845 91177308-0d34-0410-b5e6-96231b3b80d8
2016-01-26 19:46:39 +00:00
Davide Italiano
dc5172a78f [llvm-nm] Simplify. No functional changes intended.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@258837 91177308-0d34-0410-b5e6-96231b3b80d8
2016-01-26 19:28:51 +00:00
Eugene Zelenko
51ecde1f0a Fix Clang-tidy modernize-use-nullptr and modernize-use-override warnings; other minor fixes.
Differential revision: reviews.llvm.org/D16568


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@258831 91177308-0d34-0410-b5e6-96231b3b80d8
2016-01-26 18:48:36 +00:00
Kevin Enderby
ce2bf8c364 Update the comments for the macho-invalid-zero-ncmds test and fix
llvm-objdump when printing the Mach Header to print the unknown
cputype and cpusubtype fields as decimal instead of not printing
them at all.  And change the test to check for that.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@258826 91177308-0d34-0410-b5e6-96231b3b80d8
2016-01-26 18:20:49 +00:00
Benjamin Kramer
b6242a88c2 Reflect the MC/MCDisassembler split on the include/ level.
No functional change, just moving code around.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@258818 91177308-0d34-0410-b5e6-96231b3b80d8
2016-01-26 16:44:37 +00:00
Igor Laevsky
25574808dc Re-submit r256008 "Improve DWARFDebugFrame::parse to also handle __eh_frame."
Originally this change was causing failures on windows buildbots.
But those problems were fixed in r258806.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@258811 91177308-0d34-0410-b5e6-96231b3b80d8
2016-01-26 15:09:42 +00:00
Bradley Smith
36313d3496 [ARM] Add DSP build attribute and extension targeting
This patch was originally committed as r257885, but was reverted due to windows
failures. The cause of these failures has been fixed under r258677, hence
re-committing the original patch.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@258683 91177308-0d34-0410-b5e6-96231b3b80d8
2016-01-25 11:26:11 +00:00
Davide Italiano
0c2d31e26a [llvm-size] Use stderr instead of stdout for error messages.
This matches the behavior of other tools: objdump, readobj etc..


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@258667 91177308-0d34-0410-b5e6-96231b3b80d8
2016-01-25 01:24:15 +00:00
Davide Italiano
a9e5370b47 [gold] Remove inconsistent llvm_unreachable().
Differential Revision:	 http://reviews.llvm.org/D16429


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@258561 91177308-0d34-0410-b5e6-96231b3b80d8
2016-01-22 21:36:49 +00:00
Kevin Enderby
161c62450c Fix MachOObjectFile::getSymbolName() to not call report_fatal_error()
but to return object_error::parse_failed.  Then made the code in llvm-nm
do for Mach-O files what is done in the darwin native tools which is to
print "bad string index" for bad string indexes.  Updated the error message
in the llvm-objdump test, and added tests to show llvm-nm prints
"bad string index" and a test to print the actual bad string index value
which in this case is 0xfe000002 when printing the fields as raw hex.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@258520 91177308-0d34-0410-b5e6-96231b3b80d8
2016-01-22 18:47:14 +00:00
Kevin Enderby
d8116dc95f Fix MachOObjectFile::getSymbolSection() to not call report_fatal_error()
but to return object_error::parse_failed.  Then made the code in llvm-nm
do for Mach-O files what is done in the darwin native tools which is to
print "(?,?)" or just "s" for bad section indexes.  Also added a test to show
it prints the bad section index of "42" when printing the fields as raw hex.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@258434 91177308-0d34-0410-b5e6-96231b3b80d8
2016-01-21 21:13:27 +00:00
Teresa Johnson
6cd1ab976d Revert obsolete llvm-link -preserve-modules option/test
This testing mode is now obsolete with the change to linkInModule
to take a std::unique_ptr to Module.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@258399 91177308-0d34-0410-b5e6-96231b3b80d8
2016-01-21 14:28:52 +00:00
Andrew Wilkins
9c6305e216 llvm-go: call llvm-config with components
Summary:
Add components back into calls to llvm-config,
which was accidentally removed in r258283.

Reviewers: pcc

Subscribers: llvm-commits

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@258383 91177308-0d34-0410-b5e6-96231b3b80d8
2016-01-21 02:33:39 +00:00
Reid Kleckner
deaeb15786 [readobj] Print CodeOffset first, it's easier to read
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@258368 91177308-0d34-0410-b5e6-96231b3b80d8
2016-01-20 23:21:14 +00:00