[LLVMdev] Are Module / Function / Instruction iteration orders stable?
Daniel Berlin
dberlin at dberlin.org
Thu Jun 25 11:33:02 PDT 2015
These specific things *should* be stable.
The use order is not stable, however.
On Thu, Jun 25, 2015 at 9:38 AM, Christian Convey
<christian.convey at gmail.com> wrote:
> Hi guys,
>
> Suppose I have an IR file on disk, and I access it via a Module pass. Also
> suppose that the bitcode file hasn't changed, and no transformation passes
> have run.
>
> Then can I safely assume that every time my Module pass executes code like
> the following, it will always visit the Module's Functions, BasicBlocks, and
> Instructions in the same order?
>
>> for (auto const & Fn : Module) {
>> for (auto const & BB : Fn) {
>> for (auto const & Ins : BB) {
>> }
>> }
>> }
>
>
> I don't notice anything in the LLVM docs suggesting that I can count on the
> order staying the same when visiting a Module's Functions or a Function's
> BasicBlocks. But I'm told there was an IRC post the other day stating that
> the order *is* stable.
>
> Thanks, Christian
>
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>
More information about the llvm-dev
mailing list