Is it important to find a real-world application when I research about optimizations?

I’m research about optimizations and I found that there are some conflictions between two optimization passes.

My adviser asked me are there any real-world applications have that issue. I haven’t found them but I concerned there is no such pattern in real world.

In my point, Maybe this problem does not exist now, but no one can be sure that it won’t occur in the future.

Your description is too abstract to answer your question…

I found that there are some conflictions between two optimization passes.

This is common. For example, LICM would move loop invariants out of loop. But it would enlarge the live range of that variable would might cause register allocation worse.

There are two questions here:
(1) How to find real world examples for optimizations?
(2) Is it important?

For the first question, it is better to lookup the logs of optimization. There would be generally reasons why people would invent that optimization.

For the second question, I think it is not important personally. People did many efforts to find the optimization oppotunities and abstract it. But we want to find the original one now… it looks a little bit weird…

But I think the conflict I found was not be predicted before. At least there is no document to refer the conflict.

I asked my adviser about the question 2. ( Is it important? )
And he said that if I can find the real-world application, it can make my thesis more persuasive. And sure, it’s very important to me.

Maybe the importance or not is determined by my teacher because I’m his student and graduating or not is also determined by him.
But I still want to know, is the real-world application (such as a library used in many places) important for solving the conflict of two optimizations.

I’m sorry for asking such an abstract question and let you difficult to reply.

Yeah, it is hard to talk about abstract topics… but I understand you couldn’t talk it directly due to some research idea couldn’t be public at first.

From your words, I think your problem is more about research instead of concrete compiler. So this might not be a good place to ask.

if I can find the real-world application, it can make my thesis more persuasive.

From a perspective of research, it is absolutely true. I think you need to do something to find the pattern. And when you did, you would have the evidence to say there is one or there isn’t probably one. It is much better than just saying “I failed to found it”. I understand this is a little bit hard.

BTW, the example would make things better. But it doesn’t mean your work is meaningless without the example. I think it is good enough if you could state the reason in theory level.

Thanks,
Chuanqi

There are a lot of examples where optimizations conflict. Some optimizations lose information that was needed for a subsequent optimization. Some optimizations are done in an attempt to improve the probability that some other optimization will apply, but it may not. So then you may want to revert that optimization, and so on.
Even a simple expression canonicalization (like GVN) can be at odds with register allocation because it may increase liveness of registers.

Search for papers on pass ordering (there are plenty out there); I’m sure a few have concrete examples.