Age | Commit message (Collapse) | Author |
|
This will also make it easier for the upcoming AllocaManager to eliminate
allocas, because unnamed eliminated allocas won't be assigned names.
|
|
In the case of sanitizeGlobal, "_" was being prefixed in two different
places; this factors it out into one place.
|
|
In particular, this is needed to make getOptLevel() work.
|
|
|
|
of args in static calls
|
|
When we support 16-byte SIMD types, it will be nice to be able to store them
on the stack aligned without dynamic stack pointer realignment.
|
|
|
|
Since we do 8-byte loads for va_arg of double, make sure the vararg buffer
alloca is 8-byte aligned.
|
|
|
|
|
|
When GlobalOpt has determined that a GlobalVariable only ever has two values,
it would convert the GlobalVariable to a boolean, and introduce SelectInsts
at every load, to choose between the two possible values. These SelectInsts
introduce overhead and other unpleasantness.
This patch makes GlobalOpt just add range metadata to loads from such
GlobalVariables instead. This enables the same main optimization (as seen in
test/Transforms/GlobalOpt/integer-bool.ll), without introducing selects.
The main downside is that it doesn't get the memory savings of shrinking such
GlobalVariables, but this is expected to be negligible.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Incoming
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
This patch also lays the groundwork for the single-use instruction trick to
reduce the number of temporary variables.
|
|
|
|
|
|
struct argument
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|