Villmow, Micah
2008-Oct-13 22:12 UTC
[LLVMdev] Weirdness w/ llvm control flow graph generation
I am working on implementing break/continue and the flow control graphs that I am seeing are having all sorts of weird flow control that does not necessarily exist in the IR representation. For, example, a simple code segment that is a while loop w/ a continue ends up generating a CFG that is two while loops with one embedded inside each other. I've attached the dot files and the IR code. Any help with figuring out what is causing this craziness would be greatly appreciated. It was compiled with: llvm-as < float/test_fc_while_continue_gt.ll | opt -std-compile-opts -loopsimplify -simplifycfg -print-cfg > float/test_fc_while_continue_gt.bc llc -march=mybackend float/test_fc_while_continue_gt.bc Thanks for your time. Micah Villmow Systems Engineer Advanced Technology & Performance Advanced Micro Devices Inc. 4555 Great America Pkwy, Santa Clara, CA. 95054 P: 408-572-6219 F: 408-572-6596 -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20081013/f58300da/attachment.html> -------------- next part -------------- A non-text attachment was scrubbed... Name: cfg.test_fc_while_and.dot Type: application/octet-stream Size: 1669 bytes Desc: cfg.test_fc_while_and.dot URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20081013/f58300da/attachment.obj> -------------- next part -------------- A non-text attachment was scrubbed... Name: cfg.opencl_test_fc_while_continue_gt.dot Type: application/octet-stream Size: 1387 bytes Desc: cfg.opencl_test_fc_while_continue_gt.dot URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20081013/f58300da/attachment-0001.obj> -------------- next part -------------- A non-text attachment was scrubbed... Name: test_fc_while_continue_gt.ll Type: application/octet-stream Size: 1919 bytes Desc: test_fc_while_continue_gt.ll URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20081013/f58300da/attachment-0002.obj>