llvm/lib/Transforms
Gordon Henriksen 0e13821c96 GC poses hazards to the inliner. Consider:
define void @f() {
            ...
            call i32 @g()
            ...
    }

    define void @g() {
            ...
    }

The hazards are:

  - @f and @g have GC, but they differ GC. Inlining is invalid. This
    may never occur.
  - @f has no GC, but @g does. g's GC must be propagated to @f.

The other scenarios are safe:

  - @f and @g have the same GC.
  - @f and @g have no GC.
  - @g has no GC.

This patch adds inliner checks for the former two scenarios.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45351 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-25 03:10:07 +00:00
..
Hello Fix typo in comment. 2007-05-06 13:37:16 +00:00
Instrumentation Change the PointerType api for creating pointer types. The old functionality of PointerType::get() has become PointerType::getUnqual(), which returns a pointer in the generic address space. The new prototype of PointerType::get() requires both a type and an address space. 2007-12-17 01:12:55 +00:00
IPO Make DAE not wipe out attributes on calls, and not drop 2007-12-21 19:16:16 +00:00
Scalar add a -backedge-hack llc-beta option to codegenprepare. 2007-12-24 19:32:55 +00:00
Utils GC poses hazards to the inliner. Consider: 2007-12-25 03:10:07 +00:00
Makefile Build Hello by default so it can be used in test cases. 2007-04-11 21:03:37 +00:00