[llvm-commits] Speeding up instruction selection

Roman Levenstein romix.llvm at googlemail.com
Wed Apr 23 10:27:04 PDT 2008


Hi,

2008/4/23 Evan Cheng <evan.cheng at apple.com>:
> Very nice!

>  Please run it through MultiSource and SingleSource tests.
Will do.

>  Dan and I  will run it through External tests.
Very nice.

>  If it shows no regression and llvm- gcc bootstrapping works. Then please check it in.

Just to make it clear:
This patch is applied currently to the output of Tablegen.
But the proper patch will need to change the Tablegen to generate
correct *.inc files.
Thinking about it, I have a question:
Right now, the beginning of the generrated instruction selector files
is always the same, independent of the *.td file and target
architecture.
But it is generated by tablegen still and therefore cannot be
substituted easily, without changing the tablegen.
Question: May be it is better to define this common part in an include
file, e.g. ISelHeader.h, and then tablegen would generate only the
#include <llvm/CodeGen/ISelHeader.h> line. What do you think?

-Roman

>  On Apr 23, 2008, at 12:35 AM, Roman Levenstein wrote:
>
>  >
>  >
>  >> In addition to regular testing, since this patch doesn't modify any
>  >> heuristics, it should be possible to compare assembly output
>  >> between an unmodified compiler and one with this patch applied.
>  >> Can you verify that this patch doesn't change any output on some
>  >> interesting testcases?
>  >
>  > I tried it with Kimwitu, which is a very big and complex test-case.
>  > All approaches produce exactly the same assembler code. On my
>  > test-cases with very big BBs it also produces exactly the same
>  > results.
>  >
>  > For the sake of comparison, here are also some time statistics for the
>  > compilation of Kimwitu, measured by means of the Linux "time" command:
>  >
>  > Current LLVM approach:
>  > real    1m51.464s
>  > user    1m21.161s
>  > sys     0m8.529s
>  >
>  > std::set approach:
>  > real    1m37.938s (13% faster than current LLVM implementation)
>  > user    1m16.169s
>  > sys     0m7.732s
>  >
>  > NO_QUEUE approach:
>  > real    1m29.548s (20% faster than current LLVM implementation)
>  > user    1m14.949s
>  > sys     0m7.824s
>  >
>  >
>  > -Roman



More information about the llvm-commits mailing list