[PATCH] critical-anti-dependency breaker: don't use reg def info from kill insts (PR20308)

hfinkel at anl.gov hfinkel at anl.gov
Wed Aug 20 10:04:30 PDT 2014


I think that we might still want to process Kill instructions that have a subregister/subregister relationship. These are the kinds of kills that the code is expecting, and there is logic to group these and rename them together. We probably don't want to completely disable that functionality. Does that makes sense?

When we commit a fix to this, please also revert r214429 (which was my related temporary fix to a subset of this problem).

P.S. In the future, please make sure to upload full-context diffs (see the instructions here: http://llvm.org/docs/Phabricator.html).

================
Comment at: lib/CodeGen/CriticalAntiDepBreaker.cpp:95
@@ +94,3 @@
+  // Kill insts can have reg def information even though they are nops and
+  // will probably be removed. We must ignore them.
+  if (MI->isDebugValue() || MI->isKill())
----------------
I think we could say this in a better way; how about something like this:

"Kill instructions can define registers, but are really nops, and there might be a real definition earlier that needs to be paired with uses dominated by this kill."

http://reviews.llvm.org/D4977






More information about the llvm-commits mailing list