49 Commits

Author SHA1 Message Date
Daniel Sanders
35c6dd2400 Recommit: [globalisel] Change LLT constructor string into an LLT-based object that knows how to generate it.
Summary:
This will allow future patches to inspect the details of the LLT. The implementation is now split between
the Support and CodeGen libraries to allow TableGen to use this class without introducing layering concerns.

Thanks to Ahmed Bougacha for finding a reasonable way to avoid the layering issue and providing the version of this patch without that problem.

The problem with the previous commit appears to have been that TableGen was including CodeGen/LowLevelType.h instead of Support/LowLevelTypeImpl.h.

Reviewers: t.p.northover, qcolombet, rovka, aditya_nandakumar, ab, javed.absar

Subscribers: arsenm, nhaehnle, mgorny, dberris, llvm-commits, kristof.beyls

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



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@297241 91177308-0d34-0410-b5e6-96231b3b80d8
2017-03-07 23:20:35 +00:00
Daniel Sanders
428e17c613 Revert r297177: Change LLT constructor string into an LLT-based object ...
More module problems. This time it only showed up in the stage 2 compile of
clang-x86_64-linux-selfhost-modules-2 but not the stage 1 compile.

Somehow, this change causes the build to need Attributes.gen before it's been
generated.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@297188 91177308-0d34-0410-b5e6-96231b3b80d8
2017-03-07 19:21:23 +00:00
Daniel Sanders
86bbf4372b [globalisel] Change LLT constructor string into an LLT-based object that knows how to generate it.
Summary:
This will allow future patches to inspect the details of the LLT. The implementation is now split between
the Support and CodeGen libraries to allow TableGen to use this class without introducing layering concerns.

Thanks to Ahmed Bougacha for finding a reasonable way to avoid the layering issue and providing the version of this patch without that problem.

Reviewers: t.p.northover, qcolombet, rovka, aditya_nandakumar, ab, javed.absar

Subscribers: arsenm, nhaehnle, mgorny, dberris, llvm-commits, kristof.beyls

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@297177 91177308-0d34-0410-b5e6-96231b3b80d8
2017-03-07 18:32:25 +00:00
Steven Wu
2b63dffde5 Fix LLVM module build
Add WasmRelocs/WebAssembly.def to textual include header.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@296356 91177308-0d34-0410-b5e6-96231b3b80d8
2017-02-27 16:56:37 +00:00
Peter Collingbourne
87a14201c5 Tentative fix for modules build.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@291079 91177308-0d34-0410-b5e6-96231b3b80d8
2017-01-05 04:40:09 +00:00
Lang Hames
e95f35eb26 [ORC] Work around an apparent modules/linkage issue.
<rdar://problem/29247092>



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@286930 91177308-0d34-0410-b5e6-96231b3b80d8
2016-11-15 02:14:57 +00:00
Alex Bradbury
e0101912a7 [RISCV] Add RISCV.def to module.modulemap
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@285730 91177308-0d34-0410-b5e6-96231b3b80d8
2016-11-01 19:31:30 +00:00
Vassil Vassilev
befcbd18bd [modules] Re-enable some previously excluded files.
Our modules support seems to be able to handle them nowadays.

Patch by Cristina Cristescu!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@281340 91177308-0d34-0410-b5e6-96231b3b80d8
2016-09-13 14:41:35 +00:00
Benjamin Kramer
4b6011ecbe Update modulemap for Msf -> MSF rename.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@277267 91177308-0d34-0410-b5e6-96231b3b80d8
2016-07-30 12:05:17 +00:00
Zachary Turner
731237c88d Add a modulemap for LLVMDebugInfoMsf.
Differential Revision: https://reviews.llvm.org/D22769

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@276669 91177308-0d34-0410-b5e6-96231b3b80d8
2016-07-25 18:18:59 +00:00
Richard Smith
8f1ea71020 Fix modules buildbot after r275633.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@275657 91177308-0d34-0410-b5e6-96231b3b80d8
2016-07-16 01:05:39 +00:00
Teresa Johnson
ba51593080 Mark the textual headers in the module map for ProfileData
Follow on to r275312.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@275319 91177308-0d34-0410-b5e6-96231b3b80d8
2016-07-13 21:27:51 +00:00
Teresa Johnson
2b1c1c15c8 Define a module map entry for ProfileData.
As per Richard Smith, this should help avoid a modules bug exposed
by my r275216 commit:
http://lab.llvm.org:8011/builders/clang-x86_64-linux-selfhost-modules/builds/17560

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@275312 91177308-0d34-0410-b5e6-96231b3b80d8
2016-07-13 20:19:09 +00:00
Adrian Prantl
5e7e598b0e Reapply "Define a module map entry for DebugInfo/CodeView."
This reapplies r274313 with two additional #include directives needed
when submodule visibility is enabled.

Fixes PR28384.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@274358 91177308-0d34-0410-b5e6-96231b3b80d8
2016-07-01 15:54:46 +00:00
Adrian Prantl
29aa9b33fa Revert "Define a module map entry for DebugInfo/CodeView."
This reverts commit r274313.
While this fixed the build on Darwin, it broke Linux with local submodule
visibility.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@274328 91177308-0d34-0410-b5e6-96231b3b80d8
2016-07-01 03:17:02 +00:00
Adrian Prantl
968deaa498 Define a module map entry for DebugInfo/CodeView.
This fixes the -fmodules build.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@274313 91177308-0d34-0410-b5e6-96231b3b80d8
2016-07-01 01:16:17 +00:00
Vassil Vassilev
086367144d [modules] Separate intrinsic_gen dependent headers from module LLVM_IR.
Some headers in IR depend on tablegen generated code. Modules builds triggered
generation of the LLVM_IR module (including headers dependant on intrinsic_gen),
imposing a unnecessary build dependency.

Reviewed by Richard Smith.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@274006 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-28 12:27:09 +00:00
Vassil Vassilev
6b0bf92307 [modules] Good ol' JIT is gone.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@273541 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-23 07:33:03 +00:00
Vassil Vassilev
da8a463f86 Add the corresponding modulemap entry, following up r273066.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@273112 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-19 15:31:12 +00:00
Vassil Vassilev
9ddfbe4c40 [modules] Combine Pass.h, PassSupport.h and PassAnalysisSupport.h into one module.
The header files are designed to be used always together (through Pass.h).

Addresses the first part of https://llvm.org/bugs/show_bug.cgi?id=27991

Patch by Cristina Cristescu and me.

Reviewed by Richard Smith.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@272877 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-16 08:00:29 +00:00
Richard Smith
364a6f6bab Add missing include from r272607 to fix modules build, and remove out-dated workaround from module map.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@272612 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-14 01:31:23 +00:00
Richard Smith
baaf0f7642 Add new .def file to module map.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@270902 91177308-0d34-0410-b5e6-96231b3b80d8
2016-05-26 20:13:50 +00:00
Richard Smith
8e9af26fd7 Update module map for r269380.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@269438 91177308-0d34-0410-b5e6-96231b3b80d8
2016-05-13 17:27:08 +00:00
Eric Christopher
aac261190c Add Lanai.def to the module map.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@263319 91177308-0d34-0410-b5e6-96231b3b80d8
2016-03-12 01:31:53 +00:00
David L Kreitzer
8a618ffc52 Fix the LLVM_ENABLE_MODULES build after adding TargetOpcodes.def in r259726.
Differential Revision: http://reviews.llvm.org/D17005


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@260186 91177308-0d34-0410-b5e6-96231b3b80d8
2016-02-09 01:35:45 +00:00
Justin Bogner
b7fdaea278 Remove references to *.h.in files and some autoconf hackery
Missed this stuff in r259291.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@259292 91177308-0d34-0410-b5e6-96231b3b80d8
2016-01-30 04:15:33 +00:00
Dan Gohman
b6ba98d0dd [WebAssembly] Add ELFRelocs/WebAssembly.def as a "textual header" to the module map.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257515 91177308-0d34-0410-b5e6-96231b3b80d8
2016-01-12 20:51:40 +00:00
NAKAMURA Takumi
4a811ae55d llvm/module.modulemap: AVR.def should be textual header.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@251163 91177308-0d34-0410-b5e6-96231b3b80d8
2015-10-24 00:25:18 +00:00
Richard Smith
1184005c1e Rename one of our two llvm::GCOVOptions classes to llvm::GCOV::Options. We used
to get away with this because llvm/Support/GCOV.h was an implementation detail
of the llvm-gcov tool, but it's now being used by FDO.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@250258 91177308-0d34-0410-b5e6-96231b3b80d8
2015-10-14 00:04:19 +00:00
Richard Smith
a6f58ad82d [modules] Move ConvertUTF.h to a separate submodule that doesn't require C++.
The former setup once resulted in us ignoring the module for C compilations,
but Clang now errors on this if the header is included from C code (which it is).


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@247377 91177308-0d34-0410-b5e6-96231b3b80d8
2015-09-11 03:14:00 +00:00
Richard Smith
4f840727e9 [modules] Add another .def file to our list of textual headers.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@247359 91177308-0d34-0410-b5e6-96231b3b80d8
2015-09-10 23:30:27 +00:00
Benjamin Kramer
78c5b7fe3c Add Value.def to the list of textual includes, excluding it from the modules build.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@240823 91177308-0d34-0410-b5e6-96231b3b80d8
2015-06-26 20:16:44 +00:00
Duncan P. N. Exon Smith
2648710555 modules: Mark CodeGen/DIEValues.def as a textual inclusion
Mark CodeGen/DIEValues.def as a textual inclusion to fix the
`LLVM_ENABLE_MODULES` build.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@239794 91177308-0d34-0410-b5e6-96231b3b80d8
2015-06-16 00:43:52 +00:00
Richard Smith
04df402b09 Fix modules build post-r235612.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@235666 91177308-0d34-0410-b5e6-96231b3b80d8
2015-04-23 23:22:26 +00:00
Richard Smith
85ef565b6e [modules] Mark Analysis/TargetLibraryInfo.def as a textual header.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@231532 91177308-0d34-0410-b5e6-96231b3b80d8
2015-03-06 23:39:54 +00:00
Richard Smith
2013f8f1b2 [modules] Add include/llvm/IR/DebugInfoFlags.def to the textual headers list.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@230427 91177308-0d34-0410-b5e6-96231b3b80d8
2015-02-25 01:44:09 +00:00
Richard Smith
40053ce940 [modules] Fix typo in DIA exclusion in module map.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@229591 91177308-0d34-0410-b5e6-96231b3b80d8
2015-02-18 00:21:45 +00:00
Richard Smith
680fffdc92 [modules] Try harder to stop DebugInfo/PDB/DIA being built if not available.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@229243 91177308-0d34-0410-b5e6-96231b3b80d8
2015-02-14 05:54:56 +00:00
Richard Smith
ef126cdf56 [modules] Split off a separate module for DebugInfo/PDB/DIA so that its headers
don't get included on systems where the DIA SDK is unavailable.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@229200 91177308-0d34-0410-b5e6-96231b3b80d8
2015-02-14 00:47:20 +00:00
Richard Smith
12610691b1 [modules] Mark include/llvm/Support/Dwarf.def as being a textually-included header.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@229154 91177308-0d34-0410-b5e6-96231b3b80d8
2015-02-13 21:06:45 +00:00
Chandler Carruth
417c5c172c [PM] Remove the old 'PassManager.h' header file at the top level of
LLVM's include tree and the use of using declarations to hide the
'legacy' namespace for the old pass manager.

This undoes the primary modules-hostile change I made to keep
out-of-tree targets building. I sent an email inquiring about whether
this would be reasonable to do at this phase and people seemed fine with
it, so making it a reality. This should allow us to start bootstrapping
with modules to a certain extent along with making it easier to mix and
match headers in general.

The updates to any code for users of LLVM are very mechanical. Switch
from including "llvm/PassManager.h" to "llvm/IR/LegacyPassManager.h".
Qualify the types which now produce compile errors with "legacy::". The
most common ones are "PassManager", "PassManagerBase", and
"FunctionPassManager".

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@229094 91177308-0d34-0410-b5e6-96231b3b80d8
2015-02-13 10:01:29 +00:00
Richard Smith
104a21d250 Bring the modules buildbot back to life after r226940.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@226980 91177308-0d34-0410-b5e6-96231b3b80d8
2015-01-24 01:55:52 +00:00
Richard Smith
d948b98cba Update the modules build to match r223802.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@224091 91177308-0d34-0410-b5e6-96231b3b80d8
2014-12-12 02:25:18 +00:00
Richard Smith
e2fc38a1e5 Try to make the modules buildbot happy again.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@222808 91177308-0d34-0410-b5e6-96231b3b80d8
2014-11-26 03:44:47 +00:00
Richard Smith
f591f3755e [modules] Stop excluding Support/Debug.h from the Support module. This header
has been modular since r206822, and excluding it was leading to workarounds
such as the one in r219592, which this change removes.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@219593 91177308-0d34-0410-b5e6-96231b3b80d8
2014-10-13 00:41:03 +00:00
Sean Silva
73d86aa56a Nuke MCAnalysis.
The code is buggy and barely tested. It is also mostly boilerplate.
(This includes MCObjectDisassembler, which is the interface to that
functionality)

Following an IRC discussion with Jim Grosbach, it seems sensible to just
nuke the whole lot of functionality, and dig it up from VCS if
necessary (I hope not!).

All of this stuff appears to have been added in a huge patch dump (look
at the timeframe surrounding e.g. r182628) where almost every patch
seemed to be untested and not reviewed before being committed.
Post-review responses to the patches were never addressed. I don't think
any of it would have passed pre-commit review.

I doubt anyone is depending on this, since this code appears to be
extremely buggy. In limited testing that Michael Spencer and I did, we
couldn't find a single real-world object file that wouldn't crash the
CFG reconstruction stuff. The symbolizer stuff has O(n^2) behavior and
so is not much use to anyone anyway. It seemed simpler to remove them as
a whole. Most of this code is boilerplate, which is the only way it was
able to scrape by 60% coverage.

HEADSUP: Modules folks, some files I nuked were referenced from
include/llvm/module.modulemap; I just deleted the references. Hopefully
that is the right fix (one was a FIXME though!).

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@216983 91177308-0d34-0410-b5e6-96231b3b80d8
2014-09-02 22:32:20 +00:00
Richard Smith
84c5f9d0fc [modules] Update module map workaround to cope with the problematic file having
been relocated.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@215139 91177308-0d34-0410-b5e6-96231b3b80d8
2014-08-07 20:27:08 +00:00
Richard Smith
df6b3e5829 [modules] Work around mislayering of MC / Object.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@214000 91177308-0d34-0410-b5e6-96231b3b80d8
2014-07-26 01:10:32 +00:00
Richard Smith
651f680b79 [modules] Add module maps for LLVM. These are not quite ready for prime-time
yet, but only a few more Clang patches need to land. (I have 'ninja check'
passing locally.)


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@209269 91177308-0d34-0410-b5e6-96231b3b80d8
2014-05-21 02:46:14 +00:00