about summary refs log tree commit diff
path: root/src/rustllvm/ExecutionEngineWrapper.cpp
diff options
context:
space:
mode:
authorJames Miller <james@aatch.net>2016-03-11 18:00:52 +1300
committerJames Miller <james@aatch.net>2016-03-30 12:59:57 +1300
commiteee7f3c73298ed77f61ad15cdca552528d6f3783 (patch)
tree3a168f9e0637b07d1ee6a7ace59ae202135ee8ca /src/rustllvm/ExecutionEngineWrapper.cpp
parent60a28e60aa6eb0ed074fa5e6875e60cb2f038605 (diff)
downloadrust-eee7f3c73298ed77f61ad15cdca552528d6f3783.tar.gz
rust-eee7f3c73298ed77f61ad15cdca552528d6f3783.zip
Add and use a break critical edges transform
This is a fairly standard transform that inserts blocks along critical
edges so code can be inserted along the edge without it affecting other
edges. The main difference is that it considers a Drop or Call
terminator that would require an `invoke` instruction in LLVM a critical
edge. This is because we can't actually insert code after an invoke, so
it ends up looking similar to a critical edge anyway.

The transform is run just before translation right now.
Diffstat (limited to 'src/rustllvm/ExecutionEngineWrapper.cpp')
0 files changed, 0 insertions, 0 deletions