[PM] Add pass run listeners to the pass manager.

Description

[PM] Add pass run listeners to the pass manager.

This commit provides the necessary C/C++ APIs and infastructure to enable fine-
grain progress report and safe suspension points after each pass in the pass
manager.

Clients can provide a callback function to the pass manager to call after each
pass. This can be used in a variety of ways (progress report, dumping of IR
between passes, safe suspension of threads, etc).

The run listener list is maintained in the LLVMContext, which allows a multi-
threaded client to be only informed for it's own thread. This of course assumes
that the client created a LLVMContext for each thread.

This fixes rdar://problem/16728690

Details

Committed
ributzkaApr 28 2014, 11:19 AM
Parents
rL207429: Fix comment
Branches
Unknown
Tags
Unknown