mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-11-02 22:04:55 +00:00
add a note
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104404 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
070c1abbc9
commit
c2685a9c98
@ -1833,6 +1833,21 @@ entry:
|
||||
We should use DSE + llvm.lifetime.end to delete dead vtable pointer updates.
|
||||
See GCC PR34949
|
||||
|
||||
Another interesting case is that something related could be used for variables
|
||||
that go const after their ctor has finished. In these cases, globalopt (which
|
||||
can statically run the constructor) could mark the global const (so it gets put
|
||||
in the readonly section). A testcase would be:
|
||||
|
||||
#include <complex>
|
||||
using namespace std;
|
||||
const complex<char> should_be_in_rodata (42,-42);
|
||||
complex<char> should_be_in_data (42,-42);
|
||||
complex<char> should_be_in_bss;
|
||||
|
||||
Where we currently evaluate the ctors but the globals don't become const because
|
||||
the optimizer doesn't know they "become const" after the ctor is done. See
|
||||
GCC PR4131 for more examples.
|
||||
|
||||
//===---------------------------------------------------------------------===//
|
||||
|
||||
In this code:
|
||||
|
Loading…
Reference in New Issue
Block a user