comparison docs/Passes.rst @ 134:3a76565eade5 LLVM5.0.1

update 5.0.1
author mir3636
date Sat, 17 Feb 2018 09:57:20 +0900
parents 1172e4bd9c6f
children c2174574ed3a
comparison
equal deleted inserted replaced
133:c60214abe0e8 134:3a76565eade5
638 runtime library functions). For example, a call ``exit(3)`` that occurs within 638 runtime library functions). For example, a call ``exit(3)`` that occurs within
639 the ``main()`` function can be transformed into simply ``return 3``. Whether or 639 the ``main()`` function can be transformed into simply ``return 3``. Whether or
640 not library calls are simplified is controlled by the 640 not library calls are simplified is controlled by the
641 :ref:`-functionattrs <passes-functionattrs>` pass and LLVM's knowledge of 641 :ref:`-functionattrs <passes-functionattrs>` pass and LLVM's knowledge of
642 library calls on different targets. 642 library calls on different targets.
643
644 .. _passes-aggressive-instcombine:
645
646 ``-aggressive-instcombine``: Combine expression patterns
647 --------------------------------------------------------
648
649 Combine expression patterns to form expressions with fewer, simple instructions.
650 This pass does not modify the CFG.
651
652 For example, this pass reduce width of expressions post-dominated by TruncInst
653 into smaller width when applicable.
654
655 It differs from instcombine pass in that it contains pattern optimization that
656 requires higher complexity than the O(1), thus, it should run fewer times than
657 instcombine pass.
643 658
644 ``-internalize``: Internalize Global Symbols 659 ``-internalize``: Internalize Global Symbols
645 -------------------------------------------- 660 --------------------------------------------
646 661
647 This pass loops over all of the functions in the input module, looking for a 662 This pass loops over all of the functions in the input module, looking for a