9398 Commits

Author SHA1 Message Date
Matt Davis
c9a31109e7 [llvm-mca] Avoid exposing index values in the MCA interfaces.
Summary:
This patch eliminates many places where we originally needed to  pass index
values to represent an instruction.  The index is still used as a key, in various parts of 
MCA.  I'm  not comfortable eliminating the index just yet.    By burying the index in
the instruction, we can avoid exposing that value in many places.

Eventually, we should consider removing the Instructions list in the Backend 
all together,   it's only used to hold and reclaim the memory for the allocated 
Instruction instances.  Instead we could pass around a smart pointer.  But that's
a separate discussion/patch.

Reviewers: andreadb, courbet, RKSimon

Reviewed By: andreadb

Subscribers: javed.absar, tschuett, gbedwell, llvm-commits

Differential Revision: https://reviews.llvm.org/D46367

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@331660 91177308-0d34-0410-b5e6-96231b3b80d8
2018-05-07 18:29:15 +00:00
Clement Courbet
7b8a8728fb Re-land r331622 "[llvm-exegesis] Add a library to cluster benchmark results."
Add missing move.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@331624 91177308-0d34-0410-b5e6-96231b3b80d8
2018-05-07 09:09:48 +00:00
Clement Courbet
bfa2014b78 Revert r331622 "[llvm-exegesis] Add a library to cluster benchmark results."
Breaks build over llvm::Error copy construction.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@331623 91177308-0d34-0410-b5e6-96231b3b80d8
2018-05-07 08:30:18 +00:00
Clement Courbet
073b5b41a6 [llvm-exegesis] Add a library to cluster benchmark results.
Reviewers: gchatelet

Subscribers: mgorny, tschuett, llvm-commits

Differential Revision: https://reviews.llvm.org/D46432

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@331622 91177308-0d34-0410-b5e6-96231b3b80d8
2018-05-07 08:20:00 +00:00
Fangrui Song
c5823bd866 [llvm-dwp] Define InitLLVM.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@331610 91177308-0d34-0410-b5e6-96231b3b80d8
2018-05-06 23:08:29 +00:00
Andrea Di Biagio
d6075d034e [llvm-mca] removes flag -instruction-tables from the "View Options" category.
This patch also improves the description of a couple of flags in the view
options. With this change, the -help now specifies which views are enabled by
default.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@331594 91177308-0d34-0410-b5e6-96231b3b80d8
2018-05-05 15:36:47 +00:00
Andrea Di Biagio
2472749854 [llvm-mca] minor tweak to the resource pressure printing functionality. NFC.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@331590 91177308-0d34-0410-b5e6-96231b3b80d8
2018-05-05 12:21:54 +00:00
Teresa Johnson
61d9a69a18 [LTO] Allow pass remarks with hotness to be set when emitting to stderr
Summary:
Set setDiagnosticsHotnessRequested before the early exit check for a
diagnostic output file, so that pass remarks with hotness works when
emitting pass remarks to stderr (e.g. via -pass-remarks=.).

Also fix the llvm-lto2 diagnistic handler so that it only calls exit(1)
when the diagnistic is an error type. Otherwise the new test invocation
of llvm-lto2 with -pass-remarks causes it to fail. The new code is
consistent with the diagnostic handler elsewhere (e.g. on the
LLVMContext).

Reviewers: pcc, davide

Subscribers: fhahn, mehdi_amini, llvm-commits, inglorion

Differential Revision: https://reviews.llvm.org/D46387

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@331569 91177308-0d34-0410-b5e6-96231b3b80d8
2018-05-04 23:59:34 +00:00
Davide Italiano
62b8986cc3 [llvm-mc-assemble-fuzzer] Catch up with API changes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@331568 91177308-0d34-0410-b5e6-96231b3b80d8
2018-05-04 23:41:25 +00:00
Matt Davis
5646bfe92b [llvm-mca] Add descriptive names for the TimelineView report characters. NFC.
Summary:
This change makes the TimelineView source simpler to read and easier to modify in the future.
This patch introduces a class of static chars used as the display values in the TimelineView report, this change just eliminates a few magic characters.

Reviewers: andreadb, courbet, RKSimon

Reviewed By: andreadb

Subscribers: tschuett, gbedwell, llvm-commits

Differential Revision: https://reviews.llvm.org/D46409

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@331540 91177308-0d34-0410-b5e6-96231b3b80d8
2018-05-04 17:19:40 +00:00
Peter Collingbourne
c0d9a0b316 obj2yaml: Correctly round-trip default alignment.
Previously we were emitting the "cooked" alignment, which made it hard
to distinguish between that and the default alignment.

Differential Revision: https://reviews.llvm.org/D46418

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@331537 91177308-0d34-0410-b5e6-96231b3b80d8
2018-05-04 16:28:41 +00:00
Andrea Di Biagio
f6d466f5ba [llvm-mca] use colors for warnings and notes generated by InstrBuilder.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@331517 91177308-0d34-0410-b5e6-96231b3b80d8
2018-05-04 13:52:12 +00:00
Andrea Di Biagio
f501530ff6 [llvm-mca] remove unused argument from method InstrBuilder::createInstrDescImpl.
We don't need to pass the instruction index to the method that constructs new
instruction descriptors.

No functional change intended.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@331516 91177308-0d34-0410-b5e6-96231b3b80d8
2018-05-04 13:10:10 +00:00
Nico Weber
d8f6aa43aa use LLVM's standard CMakeLists.txt layout for llvm-xray
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@331455 91177308-0d34-0410-b5e6-96231b3b80d8
2018-05-03 14:25:57 +00:00
Martin Storsjo
8f8e40c8e2 [llvm-rc] Default to writing the output next to the input, if no output is specified
This matches what rc.exe does if no output is specified.

Differential Revision: https://reviews.llvm.org/D46239

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@331403 91177308-0d34-0410-b5e6-96231b3b80d8
2018-05-02 21:15:24 +00:00
Martin Storsjo
0f7c92aee7 [llvm-cvtres] Allow parameters preceded by '-' in addition to '/'
The real cvtres.exe also allows parameters in either form.

Differential Revision: https://reviews.llvm.org/D46358

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@331402 91177308-0d34-0410-b5e6-96231b3b80d8
2018-05-02 21:15:13 +00:00
Paul Semel
80e28a9c4e [llvm-objcopy] Add --discard-all (-x) option
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@331400 91177308-0d34-0410-b5e6-96231b3b80d8
2018-05-02 20:19:22 +00:00
Paul Semel
b4db044c01 [llvm-objcopy] Add --weaken option
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@331397 91177308-0d34-0410-b5e6-96231b3b80d8
2018-05-02 20:14:49 +00:00
Martin Storsjo
e99f5b406a [llvm-rc] Add rudimentary support for codepages
Only support UTF-8 (since LLVM contains UTF-8 parsing support
already, and the code even does that already) and Windows-1252
(where most code points has the same value in unicode). Keep the
existing default as only allowing ASCII input.

Using the option type JoinedOrSeparate, since the real rc.exe
handles options in this form, even if llvm-rc uses Separate for
other similar existing options.

Rename the struct SearchParams to WriterParams since it's now used
for more than just include paths.

Add a missing getResourceTypeName method to the BundleResource class,
to fix error printing from within STRINGTABLE resources (used in
tests).

Differential Revision: https://reviews.llvm.org/D46238

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@331391 91177308-0d34-0410-b5e6-96231b3b80d8
2018-05-02 19:43:44 +00:00
Dean Michael Berris
f4f861bbdf [XRay][tools] Rename llvm-xray filenames from .cc -> .cpp (NFC)
Summary:
This brings the filenames in accordance to the style guide and LLVM
conventions for C++ filenames.

As suggested by rnk@ in D46068.

Reviewers: rnk

Subscribers: mgorny, mgrang, llvm-commits

Differential Revision: https://reviews.llvm.org/D46301

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@331321 91177308-0d34-0410-b5e6-96231b3b80d8
2018-05-02 00:43:17 +00:00
Matt Davis
ff933fa1af [llvm-mca] Lift the logic of the RetireControlUnit from the Dispatch translation unit into its own translation unit. NFC
The logic remains the same.  Eventually, I see the RCU acting as its own separate stage in the instruction pipeline.

Differential Revision: https://reviews.llvm.org/D46331




git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@331316 91177308-0d34-0410-b5e6-96231b3b80d8
2018-05-01 23:04:01 +00:00
Sam Clegg
edd76949f4 [WebAssembly] llvm-readobj: display symbols names in relocations
Differential Revision: https://reviews.llvm.org/D46296

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@331279 91177308-0d34-0410-b5e6-96231b3b80d8
2018-05-01 16:35:16 +00:00
Adrian Prantl
0b24b74655 Remove @brief commands from doxygen comments, too.
This is a follow-up to r331272.

We've been running doxygen with the autobrief option for a couple of
years now. This makes the \brief markers into our comments
redundant. Since they are a visual distraction and we don't want to
encourage more \brief markers in new code either, this patch removes
them all.

Patch produced by
  for i in $(git grep -l '\@brief'); do perl -pi -e 's/\@brief //g' $i & done

https://reviews.llvm.org/D46290

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@331275 91177308-0d34-0410-b5e6-96231b3b80d8
2018-05-01 16:10:38 +00:00
Adrian Prantl
26b584c691 Remove \brief commands from doxygen comments.
We've been running doxygen with the autobrief option for a couple of
years now. This makes the \brief markers into our comments
redundant. Since they are a visual distraction and we don't want to
encourage more \brief markers in new code either, this patch removes
them all.

Patch produced by

  for i in $(git grep -l '\\brief'); do perl -pi -e 's/\\brief //g' $i & done

Differential Revision: https://reviews.llvm.org/D46290

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@331272 91177308-0d34-0410-b5e6-96231b3b80d8
2018-05-01 15:54:18 +00:00
Nirav Dave
4d34462668 [MC] Change AsmParser to leverage Assembler during evaluation
Teach AsmParser to check with Assembler for when evaluating constant
expressions.  This improves the handing of preprocessor expressions
that must be resolved at parse time. This idiom can be found as
assembling-time assertion checks in source-level assemblers. Note that
this relies on the MCStreamer to keep sufficient tabs on Section /
Fragment information which the MCAsmStreamer does not. As a result the
textual output may fail where the equivalent object generation would
pass. This can most easily be resolved by folding the MCAsmStreamer
and MCObjectStreamer together which is planned for in a separate
patch.

Currently, this feature is only enabled for assembly input, keeping IR
compilation consistent between assembly and object generation.

Reviewers: echristo, rnk, probinson, espindola, peter.smith

Reviewed By: peter.smith

Subscribers: eraman, peter.smith, arichardson, jyknight, hiraditya, llvm-commits

Differential Revision: https://reviews.llvm.org/D45164

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@331218 91177308-0d34-0410-b5e6-96231b3b80d8
2018-04-30 19:22:40 +00:00
Matt Arsenault
ac9b3ef76a AMDGPU: Add Vega12 and Vega20
Changes by
  Matt Arsenault
  Konstantin Zhuravlyov

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@331215 91177308-0d34-0410-b5e6-96231b3b80d8
2018-04-30 19:08:16 +00:00
Andrea Di Biagio
1cff79735c [llvm-mca] Correctly handle zero-latency stores that consume pipeline resources.
This fixes PR37293.

We can have scheduling classes with no write latency entries, that still consume
processor resources. We don't want to treat those instructions as zero-latency
instructions; they still have to be issued to the underlying pipelines, so they
still consume resource cycles.

This is likely to be a regression which I have accidentally introduced at
revision 330807. Now, if an instruction has a non-empty set of write processor
resources, we conservatively treat it as a normal (i.e. non zero-latency)
instruction.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@331193 91177308-0d34-0410-b5e6-96231b3b80d8
2018-04-30 15:55:04 +00:00
Nico Weber
0f38c60baf IWYU for llvm-config.h in llvm, additions.
See r331124 for how I made a list of files missing the include.
I then ran this Python script:

    for f in open('filelist.txt'):
        f = f.strip()
        fl = open(f).readlines()

        found = False
        for i in xrange(len(fl)):
            p = '#include "llvm/'
            if not fl[i].startswith(p):
                continue
            if fl[i][len(p):] > 'Config':
                fl.insert(i, '#include "llvm/Config/llvm-config.h"\n')
                found = True
                break
        if not found:
            print 'not found', f
        else:
            open(f, 'w').write(''.join(fl))

and then looked through everything with `svn diff | diffstat -l | xargs -n 1000 gvim -p`
and tried to fix include ordering and whatnot.

No intended behavior change.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@331184 91177308-0d34-0410-b5e6-96231b3b80d8
2018-04-30 14:59:11 +00:00
Andrea Di Biagio
0110ab1c05 [llvm-mca] Support for in-order CPU for -instruction-tables testing.
Added Intel Atom tests to verify that the tool correctly generates instruction
tables even if the CPU is in-order.

Fixes PR37282.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@331169 91177308-0d34-0410-b5e6-96231b3b80d8
2018-04-30 12:05:34 +00:00
whitequark
4d8bcba14b [LLVM-C] Eliminate an unused variable in a test.
This was introduced in r331123 and broke -Werror bots.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@331132 91177308-0d34-0410-b5e6-96231b3b80d8
2018-04-29 02:01:34 +00:00
Nico Weber
63033d33c8 s/LLVM_ON_WIN32/_WIN32/, llvm
LLVM_ON_WIN32 is set exactly with MSVC and MinGW (but not Cygwin) in
HandleLLVMOptions.cmake, which is where _WIN32 defined too.  Just use the
default macro instead of a reinvented one.

See thread "Replacing LLVM_ON_WIN32 with just _WIN32" on llvm-dev and cfe-dev.
No intended behavior change.

This moves over all uses of the macro, but doesn't remove the definition
of it in (llvm-)config.h yet.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@331127 91177308-0d34-0410-b5e6-96231b3b80d8
2018-04-29 00:45:03 +00:00
Robert Widmann
e2e5efbda0 [LLVM-C] Add DIBuilder bindings to create import declarations
Summary: Add bindings to create import declarations for modules, functions, types, and other entities.  This wraps the conveniences available in the existing DIBuilder API, but these seem C++-specific.

Reviewers: whitequark, harlanhaskins, deadalnix

Reviewed By: whitequark

Subscribers: llvm-commits

Differential Revision: https://reviews.llvm.org/D46167

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@331123 91177308-0d34-0410-b5e6-96231b3b80d8
2018-04-28 22:32:07 +00:00
Paul Semel
0fb24c145b [llvm-objcopy] Add --weaken-symbol (-W) option
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@331070 91177308-0d34-0410-b5e6-96231b3b80d8
2018-04-27 19:16:27 +00:00
Paul Semel
384d8a7924 [llvm-objcopy] Add --globalize-symbol option
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@331068 91177308-0d34-0410-b5e6-96231b3b80d8
2018-04-27 19:09:44 +00:00
Nirav Dave
9ef9fcf66c [MC] Undo spurious commit added into r331052.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@331055 91177308-0d34-0410-b5e6-96231b3b80d8
2018-04-27 16:16:06 +00:00
Nirav Dave
b2d1a40343 [MC] Provide default value for IsResolved.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@331052 91177308-0d34-0410-b5e6-96231b3b80d8
2018-04-27 16:11:24 +00:00
Nirav Dave
80e97ed582 [MC] Modify MCAsmStreamer to always build MCAssembler. NFCI.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@331048 91177308-0d34-0410-b5e6-96231b3b80d8
2018-04-27 15:45:54 +00:00
Sam Clegg
bfeca0b120 [WebAssembly] Section symbols must have local binding
Summary: Also test for symbols information in test/MC/WebAssembly/debug-info.ll.

Subscribers: jfb, dschuff, jgravelle-google, aheejin, sunfish, JDevlieghere, llvm-commits

Differential Revision: https://reviews.llvm.org/D46160

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@331005 91177308-0d34-0410-b5e6-96231b3b80d8
2018-04-27 00:17:21 +00:00
Matt Davis
891b01ba29 [MCA] [NFC] Remove unused Index formal from ResourceManager::issueInstruction
Summary: The instruction index was never referenced in the body.  Just a minor cleanup.

Reviewers: andreadb

Reviewed By: andreadb

Subscribers: javed.absar, gbedwell, llvm-commits

Differential Revision: https://reviews.llvm.org/D46142

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@331001 91177308-0d34-0410-b5e6-96231b3b80d8
2018-04-26 22:30:40 +00:00
Sam Clegg
db15975983 [WebAssembly] Write DWARF data into wasm object file
- Writes ".debug_XXX" into corresponding custom sections.
- Writes relocation records into "reloc.debug_XXX" sections.

Patch by Yury Delendik!

Differential Revision: https://reviews.llvm.org/D44184

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@330982 91177308-0d34-0410-b5e6-96231b3b80d8
2018-04-26 19:27:28 +00:00
Alexander Shaposhnikov
5b92658eab [llvm-objcopy] Implement --redefine-sym option
This diff implements --redefine-sym option 
for changing the name of a symbol.

Test plan: make check-all

Differential revision: https://reviews.llvm.org/D46029



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@330973 91177308-0d34-0410-b5e6-96231b3b80d8
2018-04-26 18:28:17 +00:00
Sam Clegg
14598cb5be [WebAssembly] Add version to object file metadata
Summary: See https://github.com/WebAssembly/tool-conventions/issues/54

Subscribers: jfb, dschuff, jgravelle-google, aheejin, sunfish, llvm-commits

Differential Revision: https://reviews.llvm.org/D46069

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@330969 91177308-0d34-0410-b5e6-96231b3b80d8
2018-04-26 18:15:32 +00:00
Paul Semel
37dc08589c [llvm-objcopy] Add --localize-symbol option
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@330963 91177308-0d34-0410-b5e6-96231b3b80d8
2018-04-26 17:44:43 +00:00
Sam Clegg
cc3b83d8d1 [WebAssembly] objdump: Don't assume all relocations have symbols
Subscribers: jfb, dschuff, jgravelle-google, aheejin, sunfish, llvm-commits

Differential Revision: https://reviews.llvm.org/D46134

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@330959 91177308-0d34-0410-b5e6-96231b3b80d8
2018-04-26 17:05:04 +00:00
Sam Clegg
588fa1cad7 [WebAssembly] Implement getRelocationValueString()
And use it in llvm-objdump.

Differential Revision: https://reviews.llvm.org/D46092

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@330957 91177308-0d34-0410-b5e6-96231b3b80d8
2018-04-26 16:41:51 +00:00
Nico Weber
2bcb33333d IWYU llvm-config.h for LLVM_VERSION_STRING
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@330856 91177308-0d34-0410-b5e6-96231b3b80d8
2018-04-25 18:34:00 +00:00
Nico Weber
5fc3ea70fc Rename sancov.cc to sancov.cpp
LLVM uses cpp as its C++ file ending.
https://reviews.llvm.org/D46068


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@330853 91177308-0d34-0410-b5e6-96231b3b80d8
2018-04-25 18:06:23 +00:00
Nico Weber
5e0c3d56ab Don't list a source file twice.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@330845 91177308-0d34-0410-b5e6-96231b3b80d8
2018-04-25 17:24:41 +00:00
Filipe Cabecinhas
677f7d70cd [llvm-mca] Make ViewOptions static. NFCI
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@330829 91177308-0d34-0410-b5e6-96231b3b80d8
2018-04-25 14:39:16 +00:00
Andrea Di Biagio
a2dfca18bd [llvm-mca] Add a new option category for views.
With this patch, options to add/tweak views are all grouped together in the
-help output.

The new "View Options" category looks like this:

```
  View Options:

    -dispatch-stats                 - Print dispatch statistics
    -instruction-info               - Print the instruction info view
    -instruction-tables             - Print instruction tables
    -register-file-stats            - Print register file statistics
    -resource-pressure              - Print the resource pressure view
    -retire-stats                   - Print retire control unit statistics
    -scheduler-stats                - Print scheduler statistics
    -timeline                       - Print the timeline view
    -timeline-max-cycles=<uint>     - Maximum number of cycles in the timeline view. Defaults to 80 cycles
    -timeline-max-iterations=<uint> - Maximum number of iterations to print in timeline view
```


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@330816 91177308-0d34-0410-b5e6-96231b3b80d8
2018-04-25 11:33:14 +00:00