Shrink Wrap for ARM architecture?

Hi

Does anyone know if the shrink wrap pass works for ARM architecture?

I tried it seems not working. Which architecture shrink warp was

originally designed for?

Thanks,

Yin

I know nothing about this pass, but here are a few comments.

Does anyone know if the shrink wrap pass works for ARM architecture?

First, how are you invoking it?

Looks to be a command line option, so -mllvm -shrink-wrap should enable
it. Assuming you have a Debug build, you can see the debug output using
-debug-only=shrink-wrap.

I tried it seems not working. Which architecture shrink warp was
originally designed for?

AFAICT, the implementation is target independent.

Chad

The current implementation in LLVM is experimental at best. It probably should be ripped out.

Evan

Patch attached :slight_smile:

Cheers,
Rafael

t.patch (55.8 KB)

Thanks Rafael! It's a shame to see a feature go away that easily, but I
also don't have man-power to maintain this. At least it was well isolated
so that anyone can start over from that when needed.

For my education, how bad was it? Was the problem in the implementation or
in the edge case performance? Was it something wrong with the code or just
under-tested?

Maybe, if it's not too bad (just need more testing), than I could possibly
convince someone to look at it?

cheers,
--renato

LGTM.

Was that the last use of SparseBitVector?

Thanks,
/jakob

Thanks Rafael! It's a shame to see a feature go away that easily, but I also
don't have man-power to maintain this. At least it was well isolated so that
anyone can start over from that when needed.

For my education, how bad was it? Was the problem in the implementation or
in the edge case performance? Was it something wrong with the code or just
under-tested?

Even can probably comment more, but two things I noticed:

* zero tests
* an arbitrary limit (500 basic blocks) where it would give up

Maybe, if it's not too bad (just need more testing), than I could possibly
convince someone to look at it?

cheers,
--renato

Cheers,
Rafael

No, AliveBlocks in LiveVariables uses it.

Cheers,
Rafael