Remove support for Intel MIC offloading (was: [PATCH] Remove dead code.)

Message ID 87a65qhhk0.fsf@euler.schwinge.homeip.net
State Not Applicable
Headers
Series Remove support for Intel MIC offloading (was: [PATCH] Remove dead code.) |

Checks

Context Check Description
snail/gcc-patch-check fail Git am fail log

Commit Message

Thomas Schwinge Oct. 20, 2022, 11:15 a.m. UTC
  Hi!

On 2021-11-12T06:41:41-0800, "H.J. Lu via Gcc-patches" <gcc-patches@gcc.gnu.org> wrote:
> On Fri, Nov 12, 2021 at 6:27 AM Martin Liška <mliska@suse.cz> wrote:
>> On 11/8/21 15:19, Jeff Law wrote:
>> > On 11/8/2021 2:59 AM, Jakub Jelinek via Gcc-patches wrote:
>> >> liboffloadmic is copied from upstream [...]
>> >> But I have no idea where it even lives upstream.
>> > I thought MIC as an architecture was dead, so it could well be the case that there isn't a viable upstream anymore for that code.
>>
>> @H.J. ?
>
> We'd like to deprecate MIC offload in GCC 12.

This had been done in
wwwdocs commit 5c7ecfb5627e412a3d142d8dc212f4cd39b3b73f
"Document deprecation of OpenMP MIC offloading in GCC 12".

I'm sad about this, because -- in theory -- such a plugin is very useful
for offloading simulation/debugging (separate host/device memory spaces,
allow sanitizers to run on offloaded code (like LLVM a while ago
implemented), and so on), but all that doesn't help -- in practice -- if
nobody is maintaining that code.  Also, currently that (very "bulky")
code is buildable for x86/x86_64 GNU/Linux only (again for no particular
reason, as far as I can tell).

> We will remove all traces of
> MIC offload in GCC 13.

This had come up again at the GNU Tools Cauldron 2022 (relevant folks
CCed), and I had been tasked to execute that.  Explicitly note that this
does not bear any relationship with our ongoing work to support
offloading to AMD and Nvidia GPUs: the more, the merrier, as far as I'm
concerned, and actually I had been testing Intel MIC (emulated)
offloading until a few days ago.  (Also, I had been curious about support
for Intel GPUs --
<https://inbox.sourceware.org/gcc/87v933nlhn.fsf@dem-tschwing-1.ger.mentorg.com/>
"GCC/OpenMP offloading for Intel GPUs?" -- but Intel don't seem
interested in working on that themselves?)

I'm proposing the attached "Remove support for Intel MIC offloading"
(generated with 'git format-patch --irreversible-delete', and 'diff's for
regenerated files manually snipped, to reduce its size).


Grüße
 Thomas


-----------------
Siemens Electronic Design Automation GmbH; Anschrift: Arnulfstraße 201, 80634 München; Gesellschaft mit beschränkter Haftung; Geschäftsführer: Thomas Heurung, Frank Thürauf; Sitz der Gesellschaft: München; Registergericht München, HRB 106955
  

Comments

Jakub Jelinek Oct. 20, 2022, 11:34 a.m. UTC | #1
On Thu, Oct 20, 2022 at 01:15:43PM +0200, Thomas Schwinge wrote:
> I'm proposing the attached "Remove support for Intel MIC offloading"
> (generated with 'git format-patch --irreversible-delete', and 'diff's for
> regenerated files manually snipped, to reduce its size).

ChangeLog missing, you'll need one for a successful commit.

Otherwise LGTM.  But we'll need to update the offloading wiki too.

	Jakub
  
Michael Matz Oct. 20, 2022, 12:33 p.m. UTC | #2
Hey,

On Thu, 20 Oct 2022, Thomas Schwinge wrote:

> This had been done in
> wwwdocs commit 5c7ecfb5627e412a3d142d8dc212f4cd39b3b73f
> "Document deprecation of OpenMP MIC offloading in GCC 12".
> 
> I'm sad about this, because -- in theory -- such a plugin is very useful
> for offloading simulation/debugging (separate host/device memory spaces,
> allow sanitizers to run on offloaded code

Yeah, I think that's a _very_ useful feature, but indeed ...

> (like LLVM a while ago
> implemented), and so on), but all that doesn't help -- in practice -- if
> nobody is maintaining that code.

... it should then be somewhat maintained properly.  Maybe the 
MIC-specifics could be removed from the code, and it could be transformed 
into a "null"-offload target, as example and testing vehicle (and implying 
that such new liboffloadmic^H^H^Hnull would have its upstream in the GCC 
repo).  Alas, if noone is going to do that work removing is the right 
choice.


Ciao,
Michael.
  
Jakub Jelinek Oct. 20, 2022, 12:40 p.m. UTC | #3
On Thu, Oct 20, 2022 at 12:33:28PM +0000, Michael Matz wrote:
> Hey,
> 
> On Thu, 20 Oct 2022, Thomas Schwinge wrote:
> 
> > This had been done in
> > wwwdocs commit 5c7ecfb5627e412a3d142d8dc212f4cd39b3b73f
> > "Document deprecation of OpenMP MIC offloading in GCC 12".
> > 
> > I'm sad about this, because -- in theory -- such a plugin is very useful
> > for offloading simulation/debugging (separate host/device memory spaces,
> > allow sanitizers to run on offloaded code
> 
> Yeah, I think that's a _very_ useful feature, but indeed ...
> 
> > (like LLVM a while ago
> > implemented), and so on), but all that doesn't help -- in practice -- if
> > nobody is maintaining that code.
> 
> ... it should then be somewhat maintained properly.  Maybe the 
> MIC-specifics could be removed from the code, and it could be transformed 
> into a "null"-offload target, as example and testing vehicle (and implying 
> that such new liboffloadmic^H^H^Hnull would have its upstream in the GCC 
> repo).  Alas, if noone is going to do that work removing is the right 
> choice.

Yeah.  But we really shouldn't need a large MIC specific library for that,
everything should be implementable with a simple portable plugin that just
forks + execs the offloading ELF and transfers data to/out of it etc.
And the config/i386/intelmic-mkoffload etc. stuff would need to be done
somewhere in generic code, such that we can do it for all targets.
Also ideally by using just the normal lto1 with some special option that
it acts as an offloading compiler, so that we don't need to bother with
building a separate offloading compiler for it.
True, everything guarded with #ifdef ACCEL_COMPILER etc. would need to
change into code guarded with some option.

	Jakub
  
Richard Biener Oct. 20, 2022, 1:09 p.m. UTC | #4
> Am 20.10.2022 um 14:41 schrieb Jakub Jelinek via Gcc-patches <gcc-patches@gcc.gnu.org>:
> 
> On Thu, Oct 20, 2022 at 12:33:28PM +0000, Michael Matz wrote:
>> Hey,
>> 
>>> On Thu, 20 Oct 2022, Thomas Schwinge wrote:
>>> 
>>> This had been done in
>>> wwwdocs commit 5c7ecfb5627e412a3d142d8dc212f4cd39b3b73f
>>> "Document deprecation of OpenMP MIC offloading in GCC 12".
>>> 
>>> I'm sad about this, because -- in theory -- such a plugin is very useful
>>> for offloading simulation/debugging (separate host/device memory spaces,
>>> allow sanitizers to run on offloaded code
>> 
>> Yeah, I think that's a _very_ useful feature, but indeed ...
>> 
>>> (like LLVM a while ago
>>> implemented), and so on), but all that doesn't help -- in practice -- if
>>> nobody is maintaining that code.
>> 
>> ... it should then be somewhat maintained properly.  Maybe the 
>> MIC-specifics could be removed from the code, and it could be transformed 
>> into a "null"-offload target, as example and testing vehicle (and implying 
>> that such new liboffloadmic^H^H^Hnull would have its upstream in the GCC 
>> repo).  Alas, if noone is going to do that work removing is the right 
>> choice.
> 
> Yeah.  But we really shouldn't need a large MIC specific library for that,
> everything should be implementable with a simple portable plugin that just
> forks + execs the offloading ELF and transfers data to/out of it etc.
> And the config/i386/intelmic-mkoffload etc. stuff would need to be done
> somewhere in generic code, such that we can do it for all targets.
> Also ideally by using just the normal lto1 with some special option that
> it acts as an offloading compiler, so that we don't need to bother with
> building a separate offloading compiler for it.
> True, everything guarded with #ifdef ACCEL_COMPILER etc. would need to
> change into code guarded with some option.

Might be a nice GSoC project …

Richard 

>    Jakub
>
  
Thomas Schwinge Oct. 20, 2022, 8:56 p.m. UTC | #5
Hi Jakub, Tobias!

On 2022-10-20T13:15:43+0200, I wrote:
> I'm proposing the attached "Remove support for Intel MIC offloading"

Can you please confirm:

> --- a/gcc/config/i386/i386-options.cc
> +++ b/gcc/config/i386/i386-options.cc
> @@ -307,10 +307,6 @@ ix86_omp_device_kind_arch_isa (enum omp_device_kind_arch_isa trait,
>      case omp_device_kind:
>        return strcmp (name, "cpu") == 0;
>      case omp_device_arch:
> -#ifdef ACCEL_COMPILER
> -      if (strcmp (name, "intel_mic") == 0)
> -     return 1;
> -#endif
>        if (strcmp (name, "x86") == 0)
>       return 1;
>        if (TARGET_64BIT)

Only remove this bit as quoted, or actually remove the whole function
(used for 'gcc/config/i386/i386.cc:TARGET_OMP_DEVICE_KIND_ARCH_ISA')?
But if I do the latter, I get a few FAILs in compiler-side
'[...]/gomp/declare-variant-[...]' test cases, and
'libgomp.c/declare-variant-1.c'.

You, Jakub, had originally added that in
Subversion r277662 (Git commit 9ba66bf5b9c69e0e2bcd1b2ab88160bf9b2aa417)
"targetm.omp.device_kind_arch_isa and OpenMP declare variant kind/arch/isa handling".
Reading these emails, and the discussion in
<https://gcc.gnu.org/PR105640>
"[OpenMP] Context selectors missing for PowerPC", I infer that we
generally would like to keep this stuff, for non-offloading OpenMP use,
and thus indeed just remove the Intel MIC parts (as quoted above).

Thus:

> --- a/libgomp/libgomp.texi
> +++ b/libgomp/libgomp.texi
> @@ -4303,10 +4303,6 @@ offloading devices (it's not clear if they should be):
>
>  @multitable @columnfractions .60 .10 .25
>  @headitem @code{arch} @tab @code{kind} @tab @code{isa}
> -@item @code{intel_mic}, @code{x86}, @code{x86_64}, @code{i386}, @code{i486},
> -      @code{i586}, @code{i686}, @code{ia32}
> -      @tab @code{host}
> -      @tab See @code{-m...} flags in ``x86 Options'' (without @code{-m})
>  @item @code{amdgcn}, @code{gcn}
>        @tab @code{gpu}
>        @tab See @code{-march=} in ``AMD GCN Options''

..., I should also restore this, and only remove the Intel MIC mention.

On the other hand:

> diff --git a/gcc/config/i386/t-omp-device b/gcc/config/i386/t-omp-device
> deleted file mode 100644
| index cfb41ed71ce..00000000000
| --- gcc/config/i386/t-omp-device
| +++ /dev/null
| @@ -1,6 +0,0 @@
| -omp-device-properties-i386: $(srcdir)/config/i386/i386-options.cc
| -     echo kind: cpu > $@
| -     echo arch: intel_mic x86 x86_64 i386 i486 i586 i686 ia32 >> $@
| -     echo isa: sse4 `sed -n '/^static struct ix86_target_opts isa2\?_opts\[\] =/,/^};/p' \
| -       $(srcdir)/config/i386/i386-options.cc | \
| -       sed -n 's/",.*$$//;s/^  { "-m//p'` >> $@

Indeed remove this whole file, or just Intel MIC, again?  Here, as I
understand, this is fine to remove completely, as is only used if there
is an actual offload compiler (which now there isn't anymore); unused as
of here:

> --- a/gcc/configure.ac
> +++ b/gcc/configure.ac

> @@ -1153,10 +1147,6 @@ for tgt in `echo $enable_offload_targets | sed 's/,/ /g'`; do
>
>    enable_offloading=1
>    case "$tgt" in
> -    *-intelmic-* | *-intelmicemul-*)
> -     omp_device_property=omp-device-properties-i386
> -     omp_device_property_tmake_file="${omp_device_property_tmake_file} \$(srcdir)/config/i386/t-omp-device"
> -     ;;
>      amdgcn*)
>       omp_device_property=omp-device-properties-gcn
>       omp_device_property_tmake_file="${omp_device_property_tmake_file} \$(srcdir)/config/gcn/t-omp-device"

So I assume that is OK the way I had it prepared.


Grüße
 Thomas
-----------------
Siemens Electronic Design Automation GmbH; Anschrift: Arnulfstraße 201, 80634 München; Gesellschaft mit beschränkter Haftung; Geschäftsführer: Thomas Heurung, Frank Thürauf; Sitz der Gesellschaft: München; Registergericht München, HRB 106955
  
Thomas Schwinge Nov. 4, 2022, 9:54 a.m. UTC | #6
Hi!

On 2022-10-20T22:56:57+0200, I wrote:
> Hi Jakub, Tobias!
>
> On 2022-10-20T13:15:43+0200, I wrote:
>> I'm proposing the attached "Remove support for Intel MIC offloading"
>
> Can you please confirm:

Taking your non-response as silent approval, I've now pushed to master
branch commit e4cba49413ca429dc82f6aa2e88129ecb3fdd943
"Remove support for Intel MIC offloading", see attached (generated with
'git format-patch --irreversible-delete', 'xz -9').


Grüße
 Thomas


>> --- a/gcc/config/i386/i386-options.cc
>> +++ b/gcc/config/i386/i386-options.cc
>> @@ -307,10 +307,6 @@ ix86_omp_device_kind_arch_isa (enum omp_device_kind_arch_isa trait,
>>      case omp_device_kind:
>>        return strcmp (name, "cpu") == 0;
>>      case omp_device_arch:
>> -#ifdef ACCEL_COMPILER
>> -      if (strcmp (name, "intel_mic") == 0)
>> -     return 1;
>> -#endif
>>        if (strcmp (name, "x86") == 0)
>>       return 1;
>>        if (TARGET_64BIT)
>
> Only remove this bit as quoted, or actually remove the whole function
> (used for 'gcc/config/i386/i386.cc:TARGET_OMP_DEVICE_KIND_ARCH_ISA')?
> But if I do the latter, I get a few FAILs in compiler-side
> '[...]/gomp/declare-variant-[...]' test cases, and
> 'libgomp.c/declare-variant-1.c'.
>
> You, Jakub, had originally added that in
> Subversion r277662 (Git commit 9ba66bf5b9c69e0e2bcd1b2ab88160bf9b2aa417)
> "targetm.omp.device_kind_arch_isa and OpenMP declare variant kind/arch/isa handling".
> Reading these emails, and the discussion in
> <https://gcc.gnu.org/PR105640>
> "[OpenMP] Context selectors missing for PowerPC", I infer that we
> generally would like to keep this stuff, for non-offloading OpenMP use,
> and thus indeed just remove the Intel MIC parts (as quoted above).
>
> Thus:
>
>> --- a/libgomp/libgomp.texi
>> +++ b/libgomp/libgomp.texi
>> @@ -4303,10 +4303,6 @@ offloading devices (it's not clear if they should be):
>>
>>  @multitable @columnfractions .60 .10 .25
>>  @headitem @code{arch} @tab @code{kind} @tab @code{isa}
>> -@item @code{intel_mic}, @code{x86}, @code{x86_64}, @code{i386}, @code{i486},
>> -      @code{i586}, @code{i686}, @code{ia32}
>> -      @tab @code{host}
>> -      @tab See @code{-m...} flags in ``x86 Options'' (without @code{-m})
>>  @item @code{amdgcn}, @code{gcn}
>>        @tab @code{gpu}
>>        @tab See @code{-march=} in ``AMD GCN Options''
>
> ..., I should also restore this, and only remove the Intel MIC mention.
>
> On the other hand:
>
>> diff --git a/gcc/config/i386/t-omp-device b/gcc/config/i386/t-omp-device
>> deleted file mode 100644
> | index cfb41ed71ce..00000000000
> | --- gcc/config/i386/t-omp-device
> | +++ /dev/null
> | @@ -1,6 +0,0 @@
> | -omp-device-properties-i386: $(srcdir)/config/i386/i386-options.cc
> | -     echo kind: cpu > $@
> | -     echo arch: intel_mic x86 x86_64 i386 i486 i586 i686 ia32 >> $@
> | -     echo isa: sse4 `sed -n '/^static struct ix86_target_opts isa2\?_opts\[\] =/,/^};/p' \
> | -       $(srcdir)/config/i386/i386-options.cc | \
> | -       sed -n 's/",.*$$//;s/^  { "-m//p'` >> $@
>
> Indeed remove this whole file, or just Intel MIC, again?  Here, as I
> understand, this is fine to remove completely, as is only used if there
> is an actual offload compiler (which now there isn't anymore); unused as
> of here:
>
>> --- a/gcc/configure.ac
>> +++ b/gcc/configure.ac
>
>> @@ -1153,10 +1147,6 @@ for tgt in `echo $enable_offload_targets | sed 's/,/ /g'`; do
>>
>>    enable_offloading=1
>>    case "$tgt" in
>> -    *-intelmic-* | *-intelmicemul-*)
>> -     omp_device_property=omp-device-properties-i386
>> -     omp_device_property_tmake_file="${omp_device_property_tmake_file} \$(srcdir)/config/i386/t-omp-device"
>> -     ;;
>>      amdgcn*)
>>       omp_device_property=omp-device-properties-gcn
>>       omp_device_property_tmake_file="${omp_device_property_tmake_file} \$(srcdir)/config/gcn/t-omp-device"
>
> So I assume that is OK the way I had it prepared.
>
>
> Grüße
>  Thomas


-----------------
Siemens Electronic Design Automation GmbH; Anschrift: Arnulfstraße 201, 80634 München; Gesellschaft mit beschränkter Haftung; Geschäftsführer: Thomas Heurung, Frank Thürauf; Sitz der Gesellschaft: München; Registergericht München, HRB 106955
  
Jakub Jelinek Nov. 4, 2022, 10:30 a.m. UTC | #7
On Fri, Nov 04, 2022 at 10:54:02AM +0100, Thomas Schwinge wrote:
> Hi!
> 
> On 2022-10-20T22:56:57+0200, I wrote:
> > Hi Jakub, Tobias!
> >
> > On 2022-10-20T13:15:43+0200, I wrote:
> >> I'm proposing the attached "Remove support for Intel MIC offloading"
> >
> > Can you please confirm:
> 
> Taking your non-response as silent approval, I've now pushed to master

I have responded in
https://gcc.gnu.org/pipermail/gcc-patches/2022-October/603988.html

> branch commit e4cba49413ca429dc82f6aa2e88129ecb3fdd943
> "Remove support for Intel MIC offloading", see attached (generated with
> 'git format-patch --irreversible-delete', 'xz -9').

	Jakub
  
Thomas Schwinge Nov. 4, 2022, 10:35 a.m. UTC | #8
Hi Jakub!

On 2022-11-04T11:30:04+0100, Jakub Jelinek <jakub@redhat.com> wrote:
> On Fri, Nov 04, 2022 at 10:54:02AM +0100, Thomas Schwinge wrote:
>> On 2022-10-20T22:56:57+0200, I wrote:
>> > Hi Jakub, Tobias!
>> >
>> > On 2022-10-20T13:15:43+0200, I wrote:
>> >> I'm proposing the attached "Remove support for Intel MIC offloading"
>> >
>> > Can you please confirm:
>>
>> Taking your non-response as silent approval, I've now pushed to master
>
> I have responded in
> https://gcc.gnu.org/pipermail/gcc-patches/2022-October/603988.html

That's correct, but later I sent this other email where I asked "Can you
please confirm: [...]", which had not gotten a response.  (..., but I
convinced myself that my thinking was correct, so I now did proceed
understanding "non-response as silent approval".)


Grüße
 Thomas
-----------------
Siemens Electronic Design Automation GmbH; Anschrift: Arnulfstraße 201, 80634 München; Gesellschaft mit beschränkter Haftung; Geschäftsführer: Thomas Heurung, Frank Thürauf; Sitz der Gesellschaft: München; Registergericht München, HRB 106955
  
Martin Jambor Feb. 1, 2023, 3:12 p.m. UTC | #9
Hello,

On Thu, Oct 20 2022, Richard Biener via Gcc-patches wrote:
>> Am 20.10.2022 um 14:41 schrieb Jakub Jelinek via Gcc-patches <gcc-patches@gcc.gnu.org>:
>> 
>> On Thu, Oct 20, 2022 at 12:33:28PM +0000, Michael Matz wrote:
>>> Hey,
>>> 
>>>> On Thu, 20 Oct 2022, Thomas Schwinge wrote:
>>>> 
>>>> This had been done in
>>>> wwwdocs commit 5c7ecfb5627e412a3d142d8dc212f4cd39b3b73f
>>>> "Document deprecation of OpenMP MIC offloading in GCC 12".
>>>> 
>>>> I'm sad about this, because -- in theory -- such a plugin is very useful
>>>> for offloading simulation/debugging (separate host/device memory spaces,
>>>> allow sanitizers to run on offloaded code
>>> 
>>> Yeah, I think that's a _very_ useful feature, but indeed ...
>>> 
>>>> (like LLVM a while ago
>>>> implemented), and so on), but all that doesn't help -- in practice -- if
>>>> nobody is maintaining that code.
>>> 
>>> ... it should then be somewhat maintained properly.  Maybe the 
>>> MIC-specifics could be removed from the code, and it could be transformed 
>>> into a "null"-offload target, as example and testing vehicle (and implying 
>>> that such new liboffloadmic^H^H^Hnull would have its upstream in the GCC 
>>> repo).  Alas, if noone is going to do that work removing is the right 
>>> choice.
>> 
>> Yeah.  But we really shouldn't need a large MIC specific library for that,
>> everything should be implementable with a simple portable plugin that just
>> forks + execs the offloading ELF and transfers data to/out of it etc.
>> And the config/i386/intelmic-mkoffload etc. stuff would need to be done
>> somewhere in generic code, such that we can do it for all targets.
>> Also ideally by using just the normal lto1 with some special option that
>> it acts as an offloading compiler, so that we don't need to bother with
>> building a separate offloading compiler for it.
>> True, everything guarded with #ifdef ACCEL_COMPILER etc. would need to
>> change into code guarded with some option.
>
> Might be a nice GSoC project …
>

I really think it could be.  Would any one of those involved in this
thread be willing to mentor it?

Thanks,

Martin
  
Thomas Schwinge Feb. 2, 2023, 9:13 p.m. UTC | #10
Hi!

On 2023-02-01T16:12:07+0100, Martin Jambor <mjambor@suse.cz> wrote:
> On Thu, Oct 20 2022, Richard Biener via Gcc-patches wrote:
>>> Am 20.10.2022 um 14:41 schrieb Jakub Jelinek via Gcc-patches <gcc-patches@gcc.gnu.org>:
>>> On Thu, Oct 20, 2022 at 12:33:28PM +0000, Michael Matz wrote:
>>>>> On Thu, 20 Oct 2022, Thomas Schwinge wrote:
>>>>> This had been done in
>>>>> wwwdocs commit 5c7ecfb5627e412a3d142d8dc212f4cd39b3b73f
>>>>> "Document deprecation of OpenMP MIC offloading in GCC 12".
>>>>>
>>>>> I'm sad about this, because -- in theory -- such a plugin is very useful
>>>>> for offloading simulation/debugging (separate host/device memory spaces,
>>>>> allow sanitizers to run on offloaded code
>>>>
>>>> Yeah, I think that's a _very_ useful feature, but indeed ...
>>>>
>>>>> (like LLVM a while ago
>>>>> implemented), and so on), but all that doesn't help -- in practice -- if
>>>>> nobody is maintaining that code.
>>>>
>>>> ... it should then be somewhat maintained properly.  Maybe the
>>>> MIC-specifics could be removed from the code, and it could be transformed
>>>> into a "null"-offload target, as example and testing vehicle (and implying
>>>> that such new liboffloadmic^H^H^Hnull would have its upstream in the GCC
>>>> repo).  Alas, if noone is going to do that work removing is the right
>>>> choice.
>>>
>>> Yeah.  But we really shouldn't need a large MIC specific library for that,
>>> everything should be implementable with a simple portable plugin that just
>>> forks + execs the offloading ELF and transfers data to/out of it etc.
>>> And the config/i386/intelmic-mkoffload etc. stuff would need to be done
>>> somewhere in generic code, such that we can do it for all targets.
>>> Also ideally by using just the normal lto1 with some special option that
>>> it acts as an offloading compiler, so that we don't need to bother with
>>> building a separate offloading compiler for it.
>>> True, everything guarded with #ifdef ACCEL_COMPILER etc. would need to
>>> change into code guarded with some option.
>>
>> Might be a nice GSoC project …
>
> I really think it could be.

Agreed!  Something like: "Separate Host Process Offloading"!  (Back
in October, I actually had made a TODO note to put this one onto
<https://gcc.gnu.org/wiki/SummerOfCode>, but so far...)

> Would any one of those involved in this
> thread be willing to mentor it?

I'd offer to co-mentor, but I'd rather not be the only one.


I'm now off for FOSDEM, but unless someone gets it done before, I'll cook
up a GSoC project idea text when I'm back, on Tuesday.


Grüße
 Thomas
-----------------
Siemens Electronic Design Automation GmbH; Anschrift: Arnulfstraße 201, 80634 München; Gesellschaft mit beschränkter Haftung; Geschäftsführer: Thomas Heurung, Frank Thürauf; Sitz der Gesellschaft: München; Registergericht München, HRB 106955
  
Thomas Schwinge Feb. 7, 2023, 11:26 p.m. UTC | #11
Hi!

On 2023-02-02T22:13:20+0100, I wrote:
> On 2023-02-01T16:12:07+0100, Martin Jambor <mjambor@suse.cz> wrote:
>> On Thu, Oct 20 2022, Richard Biener via Gcc-patches wrote:
>>>> Am 20.10.2022 um 14:41 schrieb Jakub Jelinek via Gcc-patches <gcc-patches@gcc.gnu.org>:
>>>> On Thu, Oct 20, 2022 at 12:33:28PM +0000, Michael Matz wrote:
>>>>>> On Thu, 20 Oct 2022, Thomas Schwinge wrote:
>>>>>> This had been done in
>>>>>> wwwdocs commit 5c7ecfb5627e412a3d142d8dc212f4cd39b3b73f
>>>>>> "Document deprecation of OpenMP MIC offloading in GCC 12".
>>>>>>
>>>>>> I'm sad about this, because -- in theory -- such a plugin is very useful
>>>>>> for offloading simulation/debugging (separate host/device memory spaces,
>>>>>> allow sanitizers to run on offloaded code
>>>>>
>>>>> Yeah, I think that's a _very_ useful feature, but indeed ...
>>>>>
>>>>>> (like LLVM a while ago
>>>>>> implemented), and so on), but all that doesn't help -- in practice -- if
>>>>>> nobody is maintaining that code.
>>>>>
>>>>> ... it should then be somewhat maintained properly.  Maybe the
>>>>> MIC-specifics could be removed from the code, and it could be transformed
>>>>> into a "null"-offload target, as example and testing vehicle (and implying
>>>>> that such new liboffloadmic^H^H^Hnull would have its upstream in the GCC
>>>>> repo).  Alas, if noone is going to do that work removing is the right
>>>>> choice.
>>>>
>>>> Yeah.  But we really shouldn't need a large MIC specific library for that,
>>>> everything should be implementable with a simple portable plugin that just
>>>> forks + execs the offloading ELF and transfers data to/out of it etc.
>>>> And the config/i386/intelmic-mkoffload etc. stuff would need to be done
>>>> somewhere in generic code, such that we can do it for all targets.
>>>> Also ideally by using just the normal lto1 with some special option that
>>>> it acts as an offloading compiler, so that we don't need to bother with
>>>> building a separate offloading compiler for it.
>>>> True, everything guarded with #ifdef ACCEL_COMPILER etc. would need to
>>>> change into code guarded with some option.
>>>
>>> Might be a nice GSoC project …
>>
>> I really think it could be.
>
> Agreed!  Something like: "Separate Host Process Offloading"!  (Back
> in October, I actually had made a TODO note to put this one onto
> <https://gcc.gnu.org/wiki/SummerOfCode>, but so far...)
>
>> Would any one of those involved in this
>> thread be willing to mentor it?
>
> I'd offer to co-mentor, but I'd rather not be the only one.

Still looking for someone to join, please!  :-)

> I'm now off for FOSDEM, but unless someone gets it done before, I'll cook
> up a GSoC project idea text when I'm back, on Tuesday.

Here it is:
<https://gcc.gnu.org/wiki/SummerOfCode#Separate_Host_Process_Offloading>.
Please have a look, and fix up if necessary.


Grüße
 Thomas
-----------------
Siemens Electronic Design Automation GmbH; Anschrift: Arnulfstraße 201, 80634 München; Gesellschaft mit beschränkter Haftung; Geschäftsführer: Thomas Heurung, Frank Thürauf; Sitz der Gesellschaft: München; Registergericht München, HRB 106955
  
Tobias Burnus Feb. 8, 2023, 7:47 a.m. UTC | #12
Hi Thomas, hi all,

On 08.02.23 00:26, Thomas Schwinge wrote:
> On 2023-02-02T22:13:20+0100, I wrote:
>> I'd offer to co-mentor, but I'd rather not be the only one.
> Still looking for someone to join, please!  :-)
As kind of mentioned before, I am willing to co-mentor :-)
> Here it is:
> https://gcc.gnu.org/wiki/SummerOfCode#Separate_Host_Process_Offloading
> Please have a look, and fix up if necessary.

Thanks. (Disclaimer: I still have to read it.)

I think this could be also the basis for remote OpenMP offload handling
via the to-be-created target-specific plugin. In this case, to do
offloading to the remote CPU. Writing such an RPC wrapper would be an
independent task, which then should also handle the offloading to a
remote GPU.  — Citing an LLVM paper about such a feature:

"The basic idea behind the Remote OpenMP Offloading implementation is to
provide a transparent communication channel between the
target-independent library on the host with the target-dependent library
on the remote system. This use case matches the well-known remote
procedure calls (RPC) idiom. To facilitate communication, we added two
new components into LLVM/OpenMP that build a tunnel from the host to the
remote system through which all plugin API calls ( in Fig. 3) are
forwarded. The first is a remote offloading plugin () which presents
itself to the host as any other plugin would, i.e., it looks no
different than the NVIDIA GPU offloading plugin. The second is a server
application that must be running on the remote system () that mimics
when it communicates with the remote device plugin, such as the one for
NVIDIA GPU offloading. The bottom row of Fig. 3 illustrates their
interaction with the existing infrastructure."

(From https://link.springer.com/chapter/10.1007/978-3-031-07312-0_16
(requires subscription))

About this topic, see also
https://www.hpcwire.com/off-the-wire/remote-openmp-offloading-paper-recognized-at-isc/
and https://baodishan.com/assets/pdf/iwomp22.pdf (both freely
accessible, the latter has a lot of details).

Tobias

-----------------
Siemens Electronic Design Automation GmbH; Anschrift: Arnulfstraße 201, 80634 München; Gesellschaft mit beschränkter Haftung; Geschäftsführer: Thomas Heurung, Frank Thürauf; Sitz der Gesellschaft: München; Registergericht München, HRB 106955
  

Patch

From cedd4fa1ad2ee78355d75b30696669716cc9546e Mon Sep 17 00:00:00 2001
From: Thomas Schwinge <thomas@codesourcery.com>
Date: Mon, 17 Oct 2022 22:19:55 +0200
Subject: [PATCH] Remove support for Intel MIC offloading

---
 Makefile.def                                  |     8 -
 Makefile.in                                   |   520 +-
 configure                                     |    66 +-
 configure.ac                                  |    57 +-
 contrib/gcc-changelog/git_commit.py           |     1 -
 contrib/gcc_update                            |     6 -
 contrib/update-copyright.py                   |     1 -
 gcc/config.gcc                                |     8 -
 gcc/config/i386/i386-options.cc               |     4 -
 gcc/config/i386/intelmic-mkoffload.cc         |   728 -
 gcc/config/i386/intelmic-offload.h            |    35 -
 gcc/config/i386/t-intelmic                    |    10 -
 gcc/config/i386/t-omp-device                  |     6 -
 gcc/configure                                 |    14 +-
 gcc/configure.ac                              |    10 -
 gcc/doc/install.texi                          |     2 +-
 gcc/doc/sourcebuild.texi                      |     3 -
 include/gomp-constants.h                      |     3 +-
 libgomp/configure                             |     3 -
 libgomp/libgomp-plugin.h                      |     1 -
 libgomp/libgomp.texi                          |     4 -
 libgomp/plugin/configfrag.ac                  |     3 -
 libgomp/testsuite/lib/libgomp.exp             |    37 -
 .../libgomp.c-c++-common/on_device_arch.h     |    35 -
 .../libgomp.c-c++-common/target-45.c          |     2 -
 .../testsuite/libgomp.fortran/target10.f90    |     1 -
 liboffloadmic/ChangeLog                       |   765 -
 liboffloadmic/Makefile.am                     |   160 -
 liboffloadmic/Makefile.in                     |  1310 --
 liboffloadmic/aclocal.m4                      |  1180 --
 liboffloadmic/configure                       | 17512 ----------------
 liboffloadmic/configure.ac                    |   143 -
 liboffloadmic/configure.tgt                   |    39 -
 liboffloadmic/doc/doxygen/config              |  2328 --
 liboffloadmic/doc/doxygen/header.tex          |    90 -
 .../include/coi/common/COIEngine_common.h     |   121 -
 .../include/coi/common/COIEvent_common.h      |    84 -
 .../include/coi/common/COIMacros_common.h     |   229 -
 .../include/coi/common/COIPerf_common.h       |    87 -
 .../include/coi/common/COIResult_common.h     |   148 -
 .../include/coi/common/COISysInfo_common.h    |   126 -
 .../include/coi/common/COITypes_common.h      |    88 -
 .../include/coi/sink/COIBuffer_sink.h         |   133 -
 .../include/coi/sink/COIPipeline_sink.h       |   137 -
 .../include/coi/sink/COIProcess_sink.h        |   174 -
 .../include/coi/source/COIBuffer_source.h     |  1806 --
 .../include/coi/source/COIEngine_source.h     |   273 -
 .../include/coi/source/COIEvent_source.h      |   301 -
 .../include/coi/source/COIPipeline_source.h   |   437 -
 .../include/coi/source/COIProcess_source.h    |  1235 --
 liboffloadmic/liboffloadmic_host.spec.in      |     3 -
 liboffloadmic/liboffloadmic_target.spec.in    |     3 -
 liboffloadmic/plugin/Makefile.am              |   125 -
 liboffloadmic/plugin/Makefile.in              |   840 -
 liboffloadmic/plugin/aclocal.m4               |  1180 --
 liboffloadmic/plugin/configure                | 17000 ---------------
 liboffloadmic/plugin/configure.ac             |   147 -
 .../plugin/libgomp-plugin-intelmic.cpp        |   545 -
 liboffloadmic/plugin/offload_target_main.cpp  |   380 -
 liboffloadmic/runtime/cean_util.cpp           |   421 -
 liboffloadmic/runtime/cean_util.h             |   137 -
 liboffloadmic/runtime/coi/coi_client.cpp      |   494 -
 liboffloadmic/runtime/coi/coi_client.h        |   176 -
 liboffloadmic/runtime/coi/coi_server.cpp      |   180 -
 liboffloadmic/runtime/coi/coi_server.h        |    94 -
 liboffloadmic/runtime/compiler_if_host.cpp    |   501 -
 liboffloadmic/runtime/compiler_if_host.h      |   209 -
 liboffloadmic/runtime/compiler_if_target.cpp  |    64 -
 liboffloadmic/runtime/compiler_if_target.h    |    70 -
 liboffloadmic/runtime/dv_util.cpp             |   153 -
 liboffloadmic/runtime/dv_util.h               |    84 -
 liboffloadmic/runtime/emulator/coi_common.h   |   168 -
 liboffloadmic/runtime/emulator/coi_device.cpp |   401 -
 liboffloadmic/runtime/emulator/coi_device.h   |    66 -
 liboffloadmic/runtime/emulator/coi_host.cpp   |  1634 --
 liboffloadmic/runtime/emulator/coi_host.h     |    65 -
 .../runtime/emulator/coi_version_asm.h        |    91 -
 .../emulator/coi_version_linker_script.map    |    91 -
 liboffloadmic/runtime/liboffload_error.c      |   561 -
 .../runtime/liboffload_error_codes.h          |   337 -
 liboffloadmic/runtime/liboffload_msg.c        |    66 -
 liboffloadmic/runtime/liboffload_msg.h        |   416 -
 liboffloadmic/runtime/mic_lib.f90             |   282 -
 liboffloadmic/runtime/offload.h               |   565 -
 liboffloadmic/runtime/offload_common.cpp      |   190 -
 liboffloadmic/runtime/offload_common.h        |   553 -
 liboffloadmic/runtime/offload_engine.cpp      |  1128 -
 liboffloadmic/runtime/offload_engine.h        |   724 -
 liboffloadmic/runtime/offload_env.cpp         |   384 -
 liboffloadmic/runtime/offload_env.h           |   112 -
 liboffloadmic/runtime/offload_host.cpp        |  7255 -------
 liboffloadmic/runtime/offload_host.h          |   541 -
 liboffloadmic/runtime/offload_iterator.h      |   103 -
 liboffloadmic/runtime/offload_omp_host.cpp    |  1267 --
 liboffloadmic/runtime/offload_omp_target.cpp  |   736 -
 liboffloadmic/runtime/offload_orsl.cpp        |   104 -
 liboffloadmic/runtime/offload_orsl.h          |    47 -
 liboffloadmic/runtime/offload_table.cpp       |   671 -
 liboffloadmic/runtime/offload_table.h         |   468 -
 liboffloadmic/runtime/offload_target.cpp      |   878 -
 liboffloadmic/runtime/offload_target.h        |   129 -
 liboffloadmic/runtime/offload_target_main.cpp |    37 -
 liboffloadmic/runtime/offload_timer.h         |   192 -
 liboffloadmic/runtime/offload_timer_host.cpp  |   379 -
 .../runtime/offload_timer_target.cpp          |    87 -
 liboffloadmic/runtime/offload_trace.cpp       |   409 -
 liboffloadmic/runtime/offload_trace.h         |    86 -
 liboffloadmic/runtime/offload_util.cpp        |   226 -
 liboffloadmic/runtime/offload_util.h          |   182 -
 liboffloadmic/runtime/ofldbegin.cpp           |   337 -
 liboffloadmic/runtime/ofldend.cpp             |   114 -
 .../runtime/orsl-lite/include/orsl-lite.h     |   241 -
 .../runtime/orsl-lite/lib/orsl-lite.c         |   357 -
 liboffloadmic/runtime/orsl-lite/version.txt   |     1 -
 114 files changed, 9 insertions(+), 75952 deletions(-)
 delete mode 100644 gcc/config/i386/intelmic-mkoffload.cc
 delete mode 100644 gcc/config/i386/intelmic-offload.h
 delete mode 100644 gcc/config/i386/t-intelmic
 delete mode 100644 gcc/config/i386/t-omp-device
 delete mode 100644 liboffloadmic/ChangeLog
 delete mode 100644 liboffloadmic/Makefile.am
 delete mode 100644 liboffloadmic/Makefile.in
 delete mode 100644 liboffloadmic/aclocal.m4
 delete mode 100755 liboffloadmic/configure
 delete mode 100644 liboffloadmic/configure.ac
 delete mode 100644 liboffloadmic/configure.tgt
 delete mode 100644 liboffloadmic/doc/doxygen/config
 delete mode 100644 liboffloadmic/doc/doxygen/header.tex
 delete mode 100644 liboffloadmic/include/coi/common/COIEngine_common.h
 delete mode 100644 liboffloadmic/include/coi/common/COIEvent_common.h
 delete mode 100644 liboffloadmic/include/coi/common/COIMacros_common.h
 delete mode 100644 liboffloadmic/include/coi/common/COIPerf_common.h
 delete mode 100644 liboffloadmic/include/coi/common/COIResult_common.h
 delete mode 100644 liboffloadmic/include/coi/common/COISysInfo_common.h
 delete mode 100644 liboffloadmic/include/coi/common/COITypes_common.h
 delete mode 100644 liboffloadmic/include/coi/sink/COIBuffer_sink.h
 delete mode 100644 liboffloadmic/include/coi/sink/COIPipeline_sink.h
 delete mode 100644 liboffloadmic/include/coi/sink/COIProcess_sink.h
 delete mode 100644 liboffloadmic/include/coi/source/COIBuffer_source.h
 delete mode 100644 liboffloadmic/include/coi/source/COIEngine_source.h
 delete mode 100644 liboffloadmic/include/coi/source/COIEvent_source.h
 delete mode 100644 liboffloadmic/include/coi/source/COIPipeline_source.h
 delete mode 100644 liboffloadmic/include/coi/source/COIProcess_source.h
 delete mode 100644 liboffloadmic/liboffloadmic_host.spec.in
 delete mode 100644 liboffloadmic/liboffloadmic_target.spec.in
 delete mode 100644 liboffloadmic/plugin/Makefile.am
 delete mode 100644 liboffloadmic/plugin/Makefile.in
 delete mode 100644 liboffloadmic/plugin/aclocal.m4
 delete mode 100755 liboffloadmic/plugin/configure
 delete mode 100644 liboffloadmic/plugin/configure.ac
 delete mode 100644 liboffloadmic/plugin/libgomp-plugin-intelmic.cpp
 delete mode 100644 liboffloadmic/plugin/offload_target_main.cpp
 delete mode 100644 liboffloadmic/runtime/cean_util.cpp
 delete mode 100644 liboffloadmic/runtime/cean_util.h
 delete mode 100644 liboffloadmic/runtime/coi/coi_client.cpp
 delete mode 100644 liboffloadmic/runtime/coi/coi_client.h
 delete mode 100644 liboffloadmic/runtime/coi/coi_server.cpp
 delete mode 100644 liboffloadmic/runtime/coi/coi_server.h
 delete mode 100644 liboffloadmic/runtime/compiler_if_host.cpp
 delete mode 100644 liboffloadmic/runtime/compiler_if_host.h
 delete mode 100644 liboffloadmic/runtime/compiler_if_target.cpp
 delete mode 100644 liboffloadmic/runtime/compiler_if_target.h
 delete mode 100644 liboffloadmic/runtime/dv_util.cpp
 delete mode 100644 liboffloadmic/runtime/dv_util.h
 delete mode 100644 liboffloadmic/runtime/emulator/coi_common.h
 delete mode 100644 liboffloadmic/runtime/emulator/coi_device.cpp
 delete mode 100644 liboffloadmic/runtime/emulator/coi_device.h
 delete mode 100644 liboffloadmic/runtime/emulator/coi_host.cpp
 delete mode 100644 liboffloadmic/runtime/emulator/coi_host.h
 delete mode 100644 liboffloadmic/runtime/emulator/coi_version_asm.h
 delete mode 100644 liboffloadmic/runtime/emulator/coi_version_linker_script.map
 delete mode 100644 liboffloadmic/runtime/liboffload_error.c
 delete mode 100644 liboffloadmic/runtime/liboffload_error_codes.h
 delete mode 100644 liboffloadmic/runtime/liboffload_msg.c
 delete mode 100644 liboffloadmic/runtime/liboffload_msg.h
 delete mode 100644 liboffloadmic/runtime/mic_lib.f90
 delete mode 100644 liboffloadmic/runtime/offload.h
 delete mode 100644 liboffloadmic/runtime/offload_common.cpp
 delete mode 100644 liboffloadmic/runtime/offload_common.h
 delete mode 100644 liboffloadmic/runtime/offload_engine.cpp
 delete mode 100644 liboffloadmic/runtime/offload_engine.h
 delete mode 100644 liboffloadmic/runtime/offload_env.cpp
 delete mode 100644 liboffloadmic/runtime/offload_env.h
 delete mode 100644 liboffloadmic/runtime/offload_host.cpp
 delete mode 100644 liboffloadmic/runtime/offload_host.h
 delete mode 100644 liboffloadmic/runtime/offload_iterator.h
 delete mode 100644 liboffloadmic/runtime/offload_omp_host.cpp
 delete mode 100644 liboffloadmic/runtime/offload_omp_target.cpp
 delete mode 100644 liboffloadmic/runtime/offload_orsl.cpp
 delete mode 100644 liboffloadmic/runtime/offload_orsl.h
 delete mode 100644 liboffloadmic/runtime/offload_table.cpp
 delete mode 100644 liboffloadmic/runtime/offload_table.h
 delete mode 100644 liboffloadmic/runtime/offload_target.cpp
 delete mode 100644 liboffloadmic/runtime/offload_target.h
 delete mode 100644 liboffloadmic/runtime/offload_target_main.cpp
 delete mode 100644 liboffloadmic/runtime/offload_timer.h
 delete mode 100644 liboffloadmic/runtime/offload_timer_host.cpp
 delete mode 100644 liboffloadmic/runtime/offload_timer_target.cpp
 delete mode 100644 liboffloadmic/runtime/offload_trace.cpp
 delete mode 100644 liboffloadmic/runtime/offload_trace.h
 delete mode 100644 liboffloadmic/runtime/offload_util.cpp
 delete mode 100644 liboffloadmic/runtime/offload_util.h
 delete mode 100644 liboffloadmic/runtime/ofldbegin.cpp
 delete mode 100644 liboffloadmic/runtime/ofldend.cpp
 delete mode 100644 liboffloadmic/runtime/orsl-lite/include/orsl-lite.h
 delete mode 100644 liboffloadmic/runtime/orsl-lite/lib/orsl-lite.c
 delete mode 100644 liboffloadmic/runtime/orsl-lite/version.txt

diff --git a/Makefile.def b/Makefile.def
index 3291b126b26..02e63c57177 100644
--- a/Makefile.def
+++ b/Makefile.def
@@ -158,9 +158,6 @@  target_modules = { module= libvtv;
 		   bootstrap=true;
 		   lib_path=.libs;
 		   raw_cxx=true; };
-target_modules = { module= liboffloadmic;
-		   lib_path=.libs;
-		   extra_configure_flags='@extra_liboffloadmic_configure_flags@'; };
 target_modules = { module= libssp; lib_path=.libs; };
 target_modules = { module= newlib; };
 target_modules = { module= libgcc; bootstrap=true; no_check=true;
@@ -603,7 +600,6 @@  dependencies = { module=all-m4; on=all-build-texinfo; };
 // on libgcc and newlib/libgloss.
 lang_env_dependencies = { module=libitm; cxx=true; };
 lang_env_dependencies = { module=libffi; cxx=true; };
-lang_env_dependencies = { module=liboffloadmic; cxx=true; };
 lang_env_dependencies = { module=newlib; no_c=true; };
 lang_env_dependencies = { module=libgloss; no_c=true; };
 lang_env_dependencies = { module=libgcc; no_gcc=true; no_c=true; };
@@ -625,14 +621,12 @@  dependencies = { module=all-target-libphobos; on=all-target-libbacktrace; };
 dependencies = { module=all-target-libphobos; on=all-target-zlib; };
 dependencies = { module=all-target-libphobos; on=all-target-libatomic; };
 dependencies = { module=configure-target-libstdc++-v3; on=configure-target-libgomp; };
-dependencies = { module=configure-target-liboffloadmic; on=configure-target-libgomp; };
 dependencies = { module=configure-target-libsanitizer; on=all-target-libstdc++-v3; };
 dependencies = { module=configure-target-libvtv; on=all-target-libstdc++-v3; };
 // parallel_list.o and parallel_settings.o depend on omp.h, which is
 // generated by the libgomp configure.  Unfortunately, due to the use of
 //  recursive make, we can't be that specific.
 dependencies = { module=all-target-libstdc++-v3; on=configure-target-libgomp; };
-dependencies = { module=all-target-liboffloadmic; on=all-target-libgomp; };
 
 dependencies = { module=install-target-libgo; on=install-target-libatomic; };
 dependencies = { module=install-target-libgfortran; on=install-target-libquadmath; };
@@ -642,8 +636,6 @@  dependencies = { module=install-target-libsanitizer; on=install-target-libstdc++
 dependencies = { module=install-target-libsanitizer; on=install-target-libgcc; };
 dependencies = { module=install-target-libvtv; on=install-target-libstdc++-v3; };
 dependencies = { module=install-target-libvtv; on=install-target-libgcc; };
-dependencies = { module=install-target-liboffloadmic; on=install-target-libstdc++-v3; };
-dependencies = { module=install-target-liboffloadmic; on=install-target-libgcc; };
 dependencies = { module=install-target-libitm; on=install-target-libgcc; };
 dependencies = { module=install-target-libobjc; on=install-target-libgcc; };
 dependencies = { module=install-target-libstdc++-v3; on=install-target-libgcc; };
diff --git a/Makefile.in b/Makefile.in
index 1919dfee829..6ffa9660c25 100644
--- a/Makefile.in
+++ b/Makefile.in
[snipped]
diff --git a/configure b/configure
index 01b014a3e65..05d694ba3fe 100755
--- a/configure
+++ b/configure
[snipped]
diff --git a/configure.ac b/configure.ac
index 2cff32e300e..8e1eaa04938 100644
--- a/configure.ac
+++ b/configure.ac
@@ -150,7 +150,6 @@  target_libraries="target-libgcc \
 		target-libgloss \
 		target-newlib \
 		target-libgomp \
-		target-liboffloadmic \
 		target-libatomic \
 		target-libitm \
 		target-libstdc++-v3 \
@@ -473,42 +472,6 @@  ENABLE_LIBSTDCXX=default)
   noconfigdirs="$noconfigdirs target-libstdc++-v3"
 fi]
 
-# If this is accelerator compiler and its target is intelmic we enable
-# target liboffloadmic by default.  If this is compiler with offloading
-# for intelmic we enable host liboffloadmic by default.  Otherwise
-# liboffloadmic is disabled by default.
-AC_ARG_ENABLE([liboffloadmic],
-AC_HELP_STRING([[--enable-liboffloadmic[=ARG]]],
-	       [build liboffloadmic @<:@ARG={no,host,target}@:>@]),
-[case "$enableval" in
-  no | host | target)
-    enable_liboffloadmic=$enableval ;;
-  *)
-    AC_MSG_ERROR([--enable-liboffloadmic=no/host/target]) ;;
-esac],
-[if test x"$enable_as_accelerator_for" != x; then
-  case "${target}" in
-    *-intelmic-* | *-intelmicemul-*)
-      enable_liboffloadmic=target
-      extra_liboffloadmic_configure_flags="--enable-liboffloadmic=target"
-      ;;
-    *)
-      enable_liboffloadmic=no
-      ;;
-  esac
-else
-  case "${enable_offload_targets}" in
-    *-intelmic-* | *-intelmicemul-*)
-      enable_liboffloadmic=host
-      extra_liboffloadmic_configure_flags="--enable-liboffloadmic=host"
-      ;;
-    *)
-      enable_liboffloadmic=no
-      ;;
-    esac
-fi])
-AC_SUBST(extra_liboffloadmic_configure_flags)
-
 # Enable libgomp by default on hosted POSIX systems, and a few others.
 if test x$enable_libgomp = x ; then
     case "${target}" in
@@ -544,22 +507,6 @@  if test -d ${srcdir}/libatomic; then
     fi
 fi
 
-# Disable liboffloadmic on unsupported systems.
-if test -d ${srcdir}/liboffloadmic; then
-    if test x$enable_liboffloadmic != xno; then
-	AC_MSG_CHECKING([for liboffloadmic support])
-	if (srcdir=${srcdir}/liboffloadmic; \
-		. ${srcdir}/configure.tgt; \
-		test -n "$UNSUPPORTED")
-	then
-	    AC_MSG_RESULT([no])
-	    noconfigdirs="$noconfigdirs target-liboffloadmic"
-	else
-	    AC_MSG_RESULT([yes])
-	fi
-    fi
-fi
-
 # Disable libitm on unsupported systems.
 if test -d ${srcdir}/libitm; then
     if test x$enable_libitm = x; then
@@ -2328,7 +2275,7 @@  case ,${enable_languages},:${enable_objc_gc} in *,objc,*:yes|*,objc,*:auto)
   fi
 esac
 
-# Disable libitm, libsanitizer, libvtv, liboffloadmic if we're not building C++
+# Disable libitm, libsanitizer, libvtv if we're not building C++
 case ,${enable_languages}, in
   *,c++,*)
     # Disable libitm, libsanitizer if we're not building libstdc++
@@ -2340,7 +2287,7 @@  case ,${enable_languages}, in
     esac
     ;;
   *)
-    noconfigdirs="$noconfigdirs target-liboffloadmic target-libitm target-libsanitizer target-libvtv"
+    noconfigdirs="$noconfigdirs target-libitm target-libsanitizer target-libvtv"
     ;;
 esac
 
diff --git a/contrib/gcc-changelog/git_commit.py b/contrib/gcc-changelog/git_commit.py
index 7f6ff87ba99..1f6e1920829 100755
--- a/contrib/gcc-changelog/git_commit.py
+++ b/contrib/gcc-changelog/git_commit.py
@@ -67,7 +67,6 @@  default_changelog_locations = {
     'libiberty',
     'libitm',
     'libobjc',
-    'liboffloadmic',
     'libphobos',
     'libquadmath',
     'libsanitizer',
diff --git a/contrib/gcc_update b/contrib/gcc_update
index 18c7ec46264..c5630df6c4c 100755
--- a/contrib/gcc_update
+++ b/contrib/gcc_update
@@ -162,12 +162,6 @@  libsanitizer/sanitizer_common/Makefile.in: libsanitizer/sanitizer_common/Makefil
 libvtv/aclocal.m4: libvtv/configure.ac libvtv/acinclude.m4
 libvtv/Makefile.in: libvtv/Makefile.am libvtv/aclocal.m4
 libvtv/configure: libvtv/configure.ac libvtv/aclocal.m4
-liboffloadmic/aclocal.m4: liboffloadmic/configure.ac
-liboffloadmic/Makefile.in: liboffloadmic/Makefile.am
-liboffloadmic/configure: liboffloadmic/configure.ac
-liboffloadmic/plugin/aclocal.m4: liboffloadmic/plugin/configure.ac
-liboffloadmic/plugin/Makefile.in: liboffloadmic/plugin/Makefile.am
-liboffloadmic/plugin/configure: liboffloadmic/plugin/configure.ac
 libbacktrace/aclocal.m4: libbacktrace/configure.ac
 libbacktrace/Makefile.in: libbacktrace/Makefile.am libbacktrace/aclocal.m4
 libbacktrace/configure: libbacktrace/configure.ac libbacktrace/aclocal.m4
diff --git a/contrib/update-copyright.py b/contrib/update-copyright.py
index 2ec2a60f5d0..76614ffc4ea 100755
--- a/contrib/update-copyright.py
+++ b/contrib/update-copyright.py
@@ -760,7 +760,6 @@  class GCCCmdLine (CmdLine):
         self.add_dir ('libiberty')
         self.add_dir ('libitm')
         self.add_dir ('libobjc')
-        # liboffloadmic is imported from upstream.
         self.add_dir ('libphobos', LibPhobosFilter())
         self.add_dir ('libquadmath')
         # libsanitizer is imported from upstream.
diff --git a/gcc/config.gcc b/gcc/config.gcc
index 2fbf2e6fa69..bdd00955869 100644
--- a/gcc/config.gcc
+++ b/gcc/config.gcc
@@ -3531,14 +3531,6 @@  case ${target} in
 	;;
 esac
 
-# Build mkoffload tool
-case ${target} in
-*-intelmic-* | *-intelmicemul-*)
-	tmake_file="${tmake_file} i386/t-intelmic"
-	tm_file="${tm_file} i386/intelmic-offload.h"
-	;;
-esac
-
 if [ "$target_has_targetcm" = "no" ]; then
   c_target_objs="$c_target_objs default-c.o"
   cxx_target_objs="$cxx_target_objs default-c.o"
diff --git a/gcc/config/i386/i386-options.cc b/gcc/config/i386/i386-options.cc
index acb2291e70f..dd1078d4526 100644
--- a/gcc/config/i386/i386-options.cc
+++ b/gcc/config/i386/i386-options.cc
@@ -307,10 +307,6 @@  ix86_omp_device_kind_arch_isa (enum omp_device_kind_arch_isa trait,
     case omp_device_kind:
       return strcmp (name, "cpu") == 0;
     case omp_device_arch:
-#ifdef ACCEL_COMPILER
-      if (strcmp (name, "intel_mic") == 0)
-	return 1;
-#endif
       if (strcmp (name, "x86") == 0)
 	return 1;
       if (TARGET_64BIT)
diff --git a/gcc/config/i386/intelmic-mkoffload.cc b/gcc/config/i386/intelmic-mkoffload.cc
deleted file mode 100644
index 5deddff6ca2..00000000000
diff --git a/gcc/config/i386/intelmic-offload.h b/gcc/config/i386/intelmic-offload.h
deleted file mode 100644
index 42ce0d8d57a..00000000000
diff --git a/gcc/config/i386/t-intelmic b/gcc/config/i386/t-intelmic
deleted file mode 100644
index 95d7e532315..00000000000
diff --git a/gcc/config/i386/t-omp-device b/gcc/config/i386/t-omp-device
deleted file mode 100644
index cfb41ed71ce..00000000000
diff --git a/gcc/configure b/gcc/configure
index 535e5d9453d..6846a1e4951 100755
--- a/gcc/configure
+++ b/gcc/configure
[snipped]
diff --git a/gcc/configure.ac b/gcc/configure.ac
index 45bf7560e6f..8dc90ff6e1f 100644
--- a/gcc/configure.ac
+++ b/gcc/configure.ac
@@ -1133,12 +1133,6 @@  if test x"$enable_as_accelerator_for" != x; then
   AC_DEFINE(ACCEL_COMPILER, 1,
     [Define if this compiler should be built as the offload target compiler.])
   enable_as_accelerator=yes
-  case "${target}" in
-    *-intelmicemul-*)
-      # In this case we expect offload compiler to be built as native, so we
-      # need to rename the driver to avoid clashes with host's drivers.
-      program_transform_name="s&^&${target}-&" ;;
-  esac
   sedscript="s#${target_noncanonical}#${enable_as_accelerator_for}-accel-${target_noncanonical}#"
   program_transform_name=`echo $program_transform_name | sed $sedscript`
   accel_dir_suffix=/accel/${target_noncanonical}
@@ -1153,10 +1147,6 @@  for tgt in `echo $enable_offload_targets | sed 's/,/ /g'`; do
 
   enable_offloading=1
   case "$tgt" in
-    *-intelmic-* | *-intelmicemul-*)
-  	omp_device_property=omp-device-properties-i386
-  	omp_device_property_tmake_file="${omp_device_property_tmake_file} \$(srcdir)/config/i386/t-omp-device"
-  	;;
     amdgcn*)
   	omp_device_property=omp-device-properties-gcn
   	omp_device_property_tmake_file="${omp_device_property_tmake_file} \$(srcdir)/config/gcn/t-omp-device"
diff --git a/gcc/doc/install.texi b/gcc/doc/install.texi
index 4931e0b4fc5..a6b802390ec 100644
--- a/gcc/doc/install.texi
+++ b/gcc/doc/install.texi
@@ -2318,7 +2318,7 @@  specifying paths @var{path1}, @dots{}, @var{pathN}.
 
 @smallexample
 % @var{srcdir}/configure \
-    --enable-offload-targets=x86_64-intelmicemul-linux-gnu=/path/to/x86_64/compiler,nvptx-none
+    --enable-offload-targets=amdgcn-amdhsa,nvptx-none
 @end smallexample
 
 @item --enable-offload-defaulted
diff --git a/gcc/doc/sourcebuild.texi b/gcc/doc/sourcebuild.texi
index c81e2ffd43a..ce312622969 100644
--- a/gcc/doc/sourcebuild.texi
+++ b/gcc/doc/sourcebuild.texi
@@ -116,9 +116,6 @@  The runtime support library for transactional memory.
 @item libobjc
 The Objective-C and Objective-C++ runtime library.
 
-@item liboffloadmic
-A library to allow OpenMP to Intel MIC targets.
-
 @item libphobos
 The D standard and runtime library.  The bulk of this library is mirrored
 from the @uref{https://github.com/@/dlang, master D repositories}.
diff --git a/include/gomp-constants.h b/include/gomp-constants.h
index 84316f953d0..85a9446ccc3 100644
--- a/include/gomp-constants.h
+++ b/include/gomp-constants.h
@@ -229,7 +229,7 @@  enum gomp_map_kind
 /* #define GOMP_DEVICE_HOST_NONSHM	3 removed.  */
 #define GOMP_DEVICE_NOT_HOST		4
 #define GOMP_DEVICE_NVIDIA_PTX		5
-#define GOMP_DEVICE_INTEL_MIC		6
+/* #define GOMP_DEVICE_INTEL_MIC	6 removed.  */
 #define GOMP_DEVICE_HSA			7
 #define GOMP_DEVICE_GCN			8
 
@@ -284,7 +284,6 @@  enum gomp_map_kind
    to the plugin interface defined in libgomp/libgomp.h.  */
 #define GOMP_VERSION	2
 #define GOMP_VERSION_NVIDIA_PTX 1
-#define GOMP_VERSION_INTEL_MIC 0
 #define GOMP_VERSION_GCN 2
 
 #define GOMP_VERSION_PACK(LIB, DEV) (((LIB) << 16) | (DEV))
diff --git a/libgomp/configure b/libgomp/configure
index 35424d2e21f..45a769eb10a 100755
--- a/libgomp/configure
+++ b/libgomp/configure
[snipped]
diff --git a/libgomp/libgomp-plugin.h b/libgomp/libgomp-plugin.h
index 6ab5ac6365f..c6dab2eb9f1 100644
--- a/libgomp/libgomp-plugin.h
+++ b/libgomp/libgomp-plugin.h
@@ -49,7 +49,6 @@  enum offload_target_type
   OFFLOAD_TARGET_TYPE_HOST = 2,
   /* OFFLOAD_TARGET_TYPE_HOST_NONSHM = 3 removed.  */
   OFFLOAD_TARGET_TYPE_NVIDIA_PTX = 5,
-  OFFLOAD_TARGET_TYPE_INTEL_MIC = 6,
   OFFLOAD_TARGET_TYPE_HSA = 7,
   OFFLOAD_TARGET_TYPE_GCN = 8
 };
diff --git a/libgomp/libgomp.texi b/libgomp/libgomp.texi
index 8d3b9cfb64d..978ed2e3a1d 100644
--- a/libgomp/libgomp.texi
+++ b/libgomp/libgomp.texi
@@ -4303,10 +4303,6 @@  offloading devices (it's not clear if they should be):
 
 @multitable @columnfractions .60 .10 .25
 @headitem @code{arch} @tab @code{kind} @tab @code{isa}
-@item @code{intel_mic}, @code{x86}, @code{x86_64}, @code{i386}, @code{i486},
-      @code{i586}, @code{i686}, @code{ia32}
-      @tab @code{host}
-      @tab See @code{-m...} flags in ``x86 Options'' (without @code{-m})
 @item @code{amdgcn}, @code{gcn}
       @tab @code{gpu}
       @tab See @code{-march=} in ``AMD GCN Options''
diff --git a/libgomp/plugin/configfrag.ac b/libgomp/plugin/configfrag.ac
index ab03f94adac..d3b258901ef 100644
--- a/libgomp/plugin/configfrag.ac
+++ b/libgomp/plugin/configfrag.ac
@@ -59,9 +59,6 @@  if test x"$enable_offload_targets" != x; then
     tgt=`echo $tgt | sed 's/=.*//'`
     tgt_plugin=
     case $tgt in
-      *-intelmic-* | *-intelmicemul-*)
-	tgt_plugin=intelmic
-	;;
       nvptx*)
 	case "${target}" in
 	  aarch64*-*-* | powerpc64le-*-* | x86_64-*-*)
diff --git a/libgomp/testsuite/lib/libgomp.exp b/libgomp/testsuite/lib/libgomp.exp
index 107a3c2ac9d..21b192bfdd7 100644
--- a/libgomp/testsuite/lib/libgomp.exp
+++ b/libgomp/testsuite/lib/libgomp.exp
@@ -119,18 +119,6 @@  proc libgomp_init { args } {
     # Compute what needs to be put into LD_LIBRARY_PATH
     set always_ld_library_path ".:${blddir}/.libs"
 
-    # Add liboffloadmic build directory in LD_LIBRARY_PATH to support
-    # Intel MIC offloading testing.
-    global offload_plugins
-    if { [string match "*,intelmic,*" ",$offload_plugins,"] } {
-	append always_ld_library_path ":${blddir}/../liboffloadmic/.libs"
-	append always_ld_library_path ":${blddir}/../liboffloadmic/plugin/.libs"
-	# libstdc++ is required by liboffloadmic
-	append always_ld_library_path ":${blddir}/../libstdc++-v3/src/.libs"
-	# libgcc_s is required by libstdc++
-	append always_ld_library_path ":${blddir}/../libgcc"
-    }
-
     global offload_additional_lib_paths
     if { $offload_additional_lib_paths != "" } {
 	append always_ld_library_path "${offload_additional_lib_paths}"
@@ -313,9 +301,6 @@  proc offload_target_to_openacc_device_type { offload_target } {
 	disable {
 	    return "host"
 	}
-	*-intelmic* {
-	    return ""
-	}
 	nvptx* {
 	    return "nvidia"
 	}
@@ -437,28 +422,6 @@  proc check_effective_target_openacc_nvidia_accel_selected { } {
     return [string match "nvidia" $openacc_device_type]
 }
 
-# Return 1 if using Intel MIC offload device.
-proc check_effective_target_offload_device_intel_mic { } {
-    return [check_runtime_nocache offload_device_intel_mic {
-      #include "testsuite/libgomp.c-c++-common/on_device_arch.h"
-      int main ()
-	{
-	  return !on_device_arch_intel_mic ();
-	}
-    } ]
-}
-
-# Return 1 if any Intel MIC offload device is available.
-proc check_effective_target_offload_device_any_intel_mic { } {
-    return [check_runtime_nocache offload_device_any_intel_mic {
-      #include "testsuite/libgomp.c-c++-common/on_device_arch.h"
-      int main ()
-	{
-	  return !any_device_arch_intel_mic ();
-	}
-    } ]
-}
-
 # Return 1 if the OpenACC 'host' device type is selected.
 
 proc check_effective_target_openacc_host_selected { } {
diff --git a/libgomp/testsuite/libgomp.c-c++-common/on_device_arch.h b/libgomp/testsuite/libgomp.c-c++-common/on_device_arch.h
index f92743b04d7..01c7109fe35 100644
--- a/libgomp/testsuite/libgomp.c-c++-common/on_device_arch.h
+++ b/libgomp/testsuite/libgomp.c-c++-common/on_device_arch.h
@@ -7,14 +7,7 @@  device_arch_nvptx (void)
   return GOMP_DEVICE_NVIDIA_PTX;
 }
 
-/* static */ int
-device_arch_intel_mic (void)
-{
-  return GOMP_DEVICE_INTEL_MIC;
-}
-
 #pragma omp declare variant (device_arch_nvptx) match(construct={target},device={arch(nvptx)})
-#pragma omp declare variant (device_arch_intel_mic) match(construct={target},device={arch(intel_mic)})
 /* static */ int
 device_arch (void)
 {
@@ -36,31 +29,3 @@  on_device_arch_nvptx ()
 {
   return on_device_arch (GOMP_DEVICE_NVIDIA_PTX);
 }
-
-int
-on_device_arch_intel_mic ()
-{
-  return on_device_arch (GOMP_DEVICE_INTEL_MIC);
-}
-
-static int
-any_device_arch (int d)
-{
-  int nd = omp_get_num_devices ();
-  for (int i = 0; i < nd; ++i)
-    {
-      int d_cur;
-      #pragma omp target device(i) map(from:d_cur)
-      d_cur = device_arch ();
-      if (d_cur == d)
-	return 1;
-    }
-
-  return 0;
-}
-
-int
-any_device_arch_intel_mic ()
-{
-  return any_device_arch (GOMP_DEVICE_INTEL_MIC);
-}
diff --git a/libgomp/testsuite/libgomp.c-c++-common/target-45.c b/libgomp/testsuite/libgomp.c-c++-common/target-45.c
index 27bbeddf7fd..73c105d5874 100644
--- a/libgomp/testsuite/libgomp.c-c++-common/target-45.c
+++ b/libgomp/testsuite/libgomp.c-c++-common/target-45.c
@@ -1,5 +1,3 @@ 
-/* { dg-xfail-run-if TODO { offload_device_any_intel_mic } } */
-
 #include <omp.h>
 #include <stdlib.h>
 
diff --git a/libgomp/testsuite/libgomp.fortran/target10.f90 b/libgomp/testsuite/libgomp.fortran/target10.f90
index 31452554d67..4876ccea330 100644
--- a/libgomp/testsuite/libgomp.fortran/target10.f90
+++ b/libgomp/testsuite/libgomp.fortran/target10.f90
@@ -1,5 +1,4 @@ 
 ! { dg-do run }
-! { dg-xfail-run-if TODO { offload_device_any_intel_mic } }
 
 program main
   use omp_lib
diff --git a/liboffloadmic/ChangeLog b/liboffloadmic/ChangeLog
deleted file mode 100644
index 90e7c4d1191..00000000000
diff --git a/liboffloadmic/Makefile.am b/liboffloadmic/Makefile.am
deleted file mode 100644
index 4a15322b1c9..00000000000
diff --git a/liboffloadmic/Makefile.in b/liboffloadmic/Makefile.in
deleted file mode 100644
index 43abc5a40e8..00000000000
diff --git a/liboffloadmic/aclocal.m4 b/liboffloadmic/aclocal.m4
deleted file mode 100644
index 31a2695c10e..00000000000
diff --git a/liboffloadmic/configure b/liboffloadmic/configure
deleted file mode 100755
index b3cfff76f71..00000000000
diff --git a/liboffloadmic/configure.ac b/liboffloadmic/configure.ac
deleted file mode 100644
index f64f182e8ef..00000000000
diff --git a/liboffloadmic/configure.tgt b/liboffloadmic/configure.tgt
deleted file mode 100644
index 3c0310cb477..00000000000
diff --git a/liboffloadmic/doc/doxygen/config b/liboffloadmic/doc/doxygen/config
deleted file mode 100644
index 3ef1019b5ce..00000000000
diff --git a/liboffloadmic/doc/doxygen/header.tex b/liboffloadmic/doc/doxygen/header.tex
deleted file mode 100644
index e91d4be29d6..00000000000
diff --git a/liboffloadmic/include/coi/common/COIEngine_common.h b/liboffloadmic/include/coi/common/COIEngine_common.h
deleted file mode 100644
index 836e3e830d4..00000000000
diff --git a/liboffloadmic/include/coi/common/COIEvent_common.h b/liboffloadmic/include/coi/common/COIEvent_common.h
deleted file mode 100644
index 9d5623d6edd..00000000000
diff --git a/liboffloadmic/include/coi/common/COIMacros_common.h b/liboffloadmic/include/coi/common/COIMacros_common.h
deleted file mode 100644
index d6811c1cd21..00000000000
diff --git a/liboffloadmic/include/coi/common/COIPerf_common.h b/liboffloadmic/include/coi/common/COIPerf_common.h
deleted file mode 100644
index 0b17e13d670..00000000000
diff --git a/liboffloadmic/include/coi/common/COIResult_common.h b/liboffloadmic/include/coi/common/COIResult_common.h
deleted file mode 100644
index d40c0b0d3ea..00000000000
diff --git a/liboffloadmic/include/coi/common/COISysInfo_common.h b/liboffloadmic/include/coi/common/COISysInfo_common.h
deleted file mode 100644
index cc37647b0c0..00000000000
diff --git a/liboffloadmic/include/coi/common/COITypes_common.h b/liboffloadmic/include/coi/common/COITypes_common.h
deleted file mode 100644
index 6018b7d0ede..00000000000
diff --git a/liboffloadmic/include/coi/sink/COIBuffer_sink.h b/liboffloadmic/include/coi/sink/COIBuffer_sink.h
deleted file mode 100644
index d36d5860b3e..00000000000
diff --git a/liboffloadmic/include/coi/sink/COIPipeline_sink.h b/liboffloadmic/include/coi/sink/COIPipeline_sink.h
deleted file mode 100644
index 9cb1087ab6f..00000000000
diff --git a/liboffloadmic/include/coi/sink/COIProcess_sink.h b/liboffloadmic/include/coi/sink/COIProcess_sink.h
deleted file mode 100644
index 9438925391e..00000000000
diff --git a/liboffloadmic/include/coi/source/COIBuffer_source.h b/liboffloadmic/include/coi/source/COIBuffer_source.h
deleted file mode 100644
index b90d50554bf..00000000000
diff --git a/liboffloadmic/include/coi/source/COIEngine_source.h b/liboffloadmic/include/coi/source/COIEngine_source.h
deleted file mode 100644
index d4f6c1bd11f..00000000000
diff --git a/liboffloadmic/include/coi/source/COIEvent_source.h b/liboffloadmic/include/coi/source/COIEvent_source.h
deleted file mode 100644
index 8c6ad25c76f..00000000000
diff --git a/liboffloadmic/include/coi/source/COIPipeline_source.h b/liboffloadmic/include/coi/source/COIPipeline_source.h
deleted file mode 100644
index c13404d7f6a..00000000000
diff --git a/liboffloadmic/include/coi/source/COIProcess_source.h b/liboffloadmic/include/coi/source/COIProcess_source.h
deleted file mode 100644
index 1248a915fc3..00000000000
diff --git a/liboffloadmic/liboffloadmic_host.spec.in b/liboffloadmic/liboffloadmic_host.spec.in
deleted file mode 100644
index 3fd12e4d7d6..00000000000
diff --git a/liboffloadmic/liboffloadmic_target.spec.in b/liboffloadmic/liboffloadmic_target.spec.in
deleted file mode 100644
index d679686684a..00000000000
diff --git a/liboffloadmic/plugin/Makefile.am b/liboffloadmic/plugin/Makefile.am
deleted file mode 100644
index 7caea7894ac..00000000000
diff --git a/liboffloadmic/plugin/Makefile.in b/liboffloadmic/plugin/Makefile.in
deleted file mode 100644
index 8d5ad0025c2..00000000000
diff --git a/liboffloadmic/plugin/aclocal.m4 b/liboffloadmic/plugin/aclocal.m4
deleted file mode 100644
index 9fa1d1216c1..00000000000
diff --git a/liboffloadmic/plugin/configure b/liboffloadmic/plugin/configure
deleted file mode 100755
index de58b93d2f7..00000000000
diff --git a/liboffloadmic/plugin/configure.ac b/liboffloadmic/plugin/configure.ac
deleted file mode 100644
index cbcd0130d05..00000000000
diff --git a/liboffloadmic/plugin/libgomp-plugin-intelmic.cpp b/liboffloadmic/plugin/libgomp-plugin-intelmic.cpp
deleted file mode 100644
index 7be27f0459d..00000000000
diff --git a/liboffloadmic/plugin/offload_target_main.cpp b/liboffloadmic/plugin/offload_target_main.cpp
deleted file mode 100644
index ccf7240e286..00000000000
diff --git a/liboffloadmic/runtime/cean_util.cpp b/liboffloadmic/runtime/cean_util.cpp
deleted file mode 100644
index f2c3e48a99c..00000000000
diff --git a/liboffloadmic/runtime/cean_util.h b/liboffloadmic/runtime/cean_util.h
deleted file mode 100644
index 1ba8793b653..00000000000
diff --git a/liboffloadmic/runtime/coi/coi_client.cpp b/liboffloadmic/runtime/coi/coi_client.cpp
deleted file mode 100644
index 179a3029e9c..00000000000
diff --git a/liboffloadmic/runtime/coi/coi_client.h b/liboffloadmic/runtime/coi/coi_client.h
deleted file mode 100644
index b5b0efc4947..00000000000
diff --git a/liboffloadmic/runtime/coi/coi_server.cpp b/liboffloadmic/runtime/coi/coi_server.cpp
deleted file mode 100644
index 67aa991eebb..00000000000
diff --git a/liboffloadmic/runtime/coi/coi_server.h b/liboffloadmic/runtime/coi/coi_server.h
deleted file mode 100644
index 1afaa3bd810..00000000000
diff --git a/liboffloadmic/runtime/compiler_if_host.cpp b/liboffloadmic/runtime/compiler_if_host.cpp
deleted file mode 100644
index 4d8feb46715..00000000000
diff --git a/liboffloadmic/runtime/compiler_if_host.h b/liboffloadmic/runtime/compiler_if_host.h
deleted file mode 100644
index 025f6fb2dba..00000000000
diff --git a/liboffloadmic/runtime/compiler_if_target.cpp b/liboffloadmic/runtime/compiler_if_target.cpp
deleted file mode 100644
index a44bd886147..00000000000
diff --git a/liboffloadmic/runtime/compiler_if_target.h b/liboffloadmic/runtime/compiler_if_target.h
deleted file mode 100644
index ebb9b73d0aa..00000000000
diff --git a/liboffloadmic/runtime/dv_util.cpp b/liboffloadmic/runtime/dv_util.cpp
deleted file mode 100644
index f79cf1f8699..00000000000
diff --git a/liboffloadmic/runtime/dv_util.h b/liboffloadmic/runtime/dv_util.h
deleted file mode 100644
index 370ff01637d..00000000000
diff --git a/liboffloadmic/runtime/emulator/coi_common.h b/liboffloadmic/runtime/emulator/coi_common.h
deleted file mode 100644
index 085a92d83ea..00000000000
diff --git a/liboffloadmic/runtime/emulator/coi_device.cpp b/liboffloadmic/runtime/emulator/coi_device.cpp
deleted file mode 100644
index c11214723e0..00000000000
diff --git a/liboffloadmic/runtime/emulator/coi_device.h b/liboffloadmic/runtime/emulator/coi_device.h
deleted file mode 100644
index a3778baa6a2..00000000000
diff --git a/liboffloadmic/runtime/emulator/coi_host.cpp b/liboffloadmic/runtime/emulator/coi_host.cpp
deleted file mode 100644
index 6170d8d7f3d..00000000000
diff --git a/liboffloadmic/runtime/emulator/coi_host.h b/liboffloadmic/runtime/emulator/coi_host.h
deleted file mode 100644
index 82dbc92aef8..00000000000
diff --git a/liboffloadmic/runtime/emulator/coi_version_asm.h b/liboffloadmic/runtime/emulator/coi_version_asm.h
deleted file mode 100644
index e64ba7dcc06..00000000000
diff --git a/liboffloadmic/runtime/emulator/coi_version_linker_script.map b/liboffloadmic/runtime/emulator/coi_version_linker_script.map
deleted file mode 100644
index ea180669858..00000000000
diff --git a/liboffloadmic/runtime/liboffload_error.c b/liboffloadmic/runtime/liboffload_error.c
deleted file mode 100644
index 5dffdb11512..00000000000
diff --git a/liboffloadmic/runtime/liboffload_error_codes.h b/liboffloadmic/runtime/liboffload_error_codes.h
deleted file mode 100644
index d7a71c3e6d4..00000000000
diff --git a/liboffloadmic/runtime/liboffload_msg.c b/liboffloadmic/runtime/liboffload_msg.c
deleted file mode 100644
index ffee72f5ae8..00000000000
diff --git a/liboffloadmic/runtime/liboffload_msg.h b/liboffloadmic/runtime/liboffload_msg.h
deleted file mode 100644
index 93eccd496fd..00000000000
diff --git a/liboffloadmic/runtime/mic_lib.f90 b/liboffloadmic/runtime/mic_lib.f90
deleted file mode 100644
index 1874dd97796..00000000000
diff --git a/liboffloadmic/runtime/offload.h b/liboffloadmic/runtime/offload.h
deleted file mode 100644
index 4a329ba0e56..00000000000
diff --git a/liboffloadmic/runtime/offload_common.cpp b/liboffloadmic/runtime/offload_common.cpp
deleted file mode 100644
index af569ae3376..00000000000
diff --git a/liboffloadmic/runtime/offload_common.h b/liboffloadmic/runtime/offload_common.h
deleted file mode 100644
index 445d47cfad0..00000000000
diff --git a/liboffloadmic/runtime/offload_engine.cpp b/liboffloadmic/runtime/offload_engine.cpp
deleted file mode 100644
index b2de56c68eb..00000000000
diff --git a/liboffloadmic/runtime/offload_engine.h b/liboffloadmic/runtime/offload_engine.h
deleted file mode 100644
index b4cdad503be..00000000000
diff --git a/liboffloadmic/runtime/offload_env.cpp b/liboffloadmic/runtime/offload_env.cpp
deleted file mode 100644
index d1f52f14342..00000000000
diff --git a/liboffloadmic/runtime/offload_env.h b/liboffloadmic/runtime/offload_env.h
deleted file mode 100644
index 166b5d9242d..00000000000
diff --git a/liboffloadmic/runtime/offload_host.cpp b/liboffloadmic/runtime/offload_host.cpp
deleted file mode 100644
index cab08c43550..00000000000
diff --git a/liboffloadmic/runtime/offload_host.h b/liboffloadmic/runtime/offload_host.h
deleted file mode 100644
index 4f1ef1392ba..00000000000
diff --git a/liboffloadmic/runtime/offload_iterator.h b/liboffloadmic/runtime/offload_iterator.h
deleted file mode 100644
index baf25afbb2f..00000000000
diff --git a/liboffloadmic/runtime/offload_omp_host.cpp b/liboffloadmic/runtime/offload_omp_host.cpp
deleted file mode 100644
index 0439fec313b..00000000000
diff --git a/liboffloadmic/runtime/offload_omp_target.cpp b/liboffloadmic/runtime/offload_omp_target.cpp
deleted file mode 100644
index 2bcfef5acea..00000000000
diff --git a/liboffloadmic/runtime/offload_orsl.cpp b/liboffloadmic/runtime/offload_orsl.cpp
deleted file mode 100644
index a2ab6743ab5..00000000000
diff --git a/liboffloadmic/runtime/offload_orsl.h b/liboffloadmic/runtime/offload_orsl.h
deleted file mode 100644
index 4513fcc4749..00000000000
diff --git a/liboffloadmic/runtime/offload_table.cpp b/liboffloadmic/runtime/offload_table.cpp
deleted file mode 100644
index 09c4d206e58..00000000000
diff --git a/liboffloadmic/runtime/offload_table.h b/liboffloadmic/runtime/offload_table.h
deleted file mode 100644
index 9f9f93261cb..00000000000
diff --git a/liboffloadmic/runtime/offload_target.cpp b/liboffloadmic/runtime/offload_target.cpp
deleted file mode 100644
index 16ba4a32991..00000000000
diff --git a/liboffloadmic/runtime/offload_target.h b/liboffloadmic/runtime/offload_target.h
deleted file mode 100644
index 8d2971b2418..00000000000
diff --git a/liboffloadmic/runtime/offload_target_main.cpp b/liboffloadmic/runtime/offload_target_main.cpp
deleted file mode 100644
index 68f7c3054d5..00000000000
diff --git a/liboffloadmic/runtime/offload_timer.h b/liboffloadmic/runtime/offload_timer.h
deleted file mode 100644
index 30a1149b6fb..00000000000
diff --git a/liboffloadmic/runtime/offload_timer_host.cpp b/liboffloadmic/runtime/offload_timer_host.cpp
deleted file mode 100644
index 3d93508f5d8..00000000000
diff --git a/liboffloadmic/runtime/offload_timer_target.cpp b/liboffloadmic/runtime/offload_timer_target.cpp
deleted file mode 100644
index 860f2976580..00000000000
diff --git a/liboffloadmic/runtime/offload_trace.cpp b/liboffloadmic/runtime/offload_trace.cpp
deleted file mode 100644
index 8d69c286f57..00000000000
diff --git a/liboffloadmic/runtime/offload_trace.h b/liboffloadmic/runtime/offload_trace.h
deleted file mode 100644
index e48aa01f340..00000000000
diff --git a/liboffloadmic/runtime/offload_util.cpp b/liboffloadmic/runtime/offload_util.cpp
deleted file mode 100644
index bb434871f60..00000000000
diff --git a/liboffloadmic/runtime/offload_util.h b/liboffloadmic/runtime/offload_util.h
deleted file mode 100644
index 789846239bf..00000000000
diff --git a/liboffloadmic/runtime/ofldbegin.cpp b/liboffloadmic/runtime/ofldbegin.cpp
deleted file mode 100644
index 49d40509c97..00000000000
diff --git a/liboffloadmic/runtime/ofldend.cpp b/liboffloadmic/runtime/ofldend.cpp
deleted file mode 100644
index 3cabc1a0003..00000000000
diff --git a/liboffloadmic/runtime/orsl-lite/include/orsl-lite.h b/liboffloadmic/runtime/orsl-lite/include/orsl-lite.h
deleted file mode 100644
index 867bae5f33c..00000000000
diff --git a/liboffloadmic/runtime/orsl-lite/lib/orsl-lite.c b/liboffloadmic/runtime/orsl-lite/lib/orsl-lite.c
deleted file mode 100644
index 669c40a1358..00000000000
diff --git a/liboffloadmic/runtime/orsl-lite/version.txt b/liboffloadmic/runtime/orsl-lite/version.txt
deleted file mode 100644
index ab5f59930fc..00000000000
-- 
2.35.1