History log of /external/llvm/lib/CodeGen/StackColoring.cpp
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
dce4a407a24b04eebc6a376f8e62b41aaa7b071f 29-May-2014 Stephen Hines <srhines@google.com> Update LLVM for 3.5 rebase (r209712).

Change-Id: I149556c940fb7dc92d075273c87ff584f400941f
/external/llvm/lib/CodeGen/StackColoring.cpp
36b56886974eae4f9c5ebc96befd3e7bfe5de338 24-Apr-2014 Stephen Hines <srhines@google.com> Update to LLVM 3.5a.

Change-Id: Ifadecab779f128e62e430c2b4f6ddd84953ed617
/external/llvm/lib/CodeGen/StackColoring.cpp
331de11a0acc6a095b98914b5f05ff242c9d7819 10-Oct-2013 Matthias Braun <matze@braunis.de> Rename LiveRange to LiveInterval::Segment

The Segment struct contains a single interval; multiple instances of this struct
are used to construct a live range, but the struct is not a live range by
itself.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192392 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StackColoring.cpp
f80a63fa23862e578de919f4b44d4fcdee68fd0d 28-Sep-2013 Robert Wilhelm <robert.wilhelm@gmx.net> Fix spelling intruction -> instruction.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191610 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StackColoring.cpp
f22fd3f7b557a967b1edc1fa9ae770006a39e97c 03-Jul-2013 Craig Topper <craig.topper@gmail.com> Use SmallVectorImpl instead of SmallVector for iterators and references to avoid specifying the vector size unnecessarily.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185512 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StackColoring.cpp
c22cdb7203e4aad8e6491487f224efff7a3e58c0 15-May-2013 Derek Schuff <dschuff@google.com> Fix miscompile due to StackColoring incorrectly merging stack slots (PR15707)

IR optimisation passes can result in a basic block that contains:

llvm.lifetime.start(%buf)
...
llvm.lifetime.end(%buf)
...
llvm.lifetime.start(%buf)

Before this change, calculateLiveIntervals() was ignoring the second
lifetime.start() and was regarding %buf as being dead from the
lifetime.end() through to the end of the basic block. This can cause
StackColoring to incorrectly merge %buf with another stack slot.

Fix by removing the incorrect Starts[pos].isValid() and
Finishes[pos].isValid() checks.

Just doing:
Starts[pos] = Indexes->getMBBStartIdx(MBB);
Finishes[pos] = Indexes->getMBBEndIdx(MBB);
unconditionally would be enough to fix the bug, but it causes some
test failures due to stack slots not being merged when they were
before. So, in order to keep the existing tests passing, treat LiveIn
and LiveOut separately rather than approximating the live ranges by
merging LiveIn and LiveOut.

This fixes PR15707.
Patch by Mark Seaborn.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@181922 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StackColoring.cpp
dd29df06fa72de9e370cdd9d8e32ac5437a578c7 14-May-2013 Akira Hatanaka <ahatanaka@mips.com> StackColoring: don't clear an instruction's mem operand if the underlying
object is a PseudoSourceValue and PseudoSourceValue::isConstant returns true (i.e.,
points to memory that has a constant value).



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@181751 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StackColoring.cpp
57d76078ae8ecd16b995cc6a9f9bc57bdde4a20e 25-Mar-2013 Eric Christopher <echristo@gmail.com> Couple more sets of tidying.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@177920 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StackColoring.cpp
259021a5621fd3837db79934ea5880cb846bfc44 25-Mar-2013 Eric Christopher <echristo@gmail.com> Formatting.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@177898 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StackColoring.cpp
261abf5f4011e5b1e8949d7404190a4f4eaff8d8 19-Feb-2013 Craig Topper <craig.topper@gmail.com> More const correcting of stack coloring.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175490 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StackColoring.cpp
04fbcb59432c085bb284501dcea9693f435a417b 19-Feb-2013 Craig Topper <craig.topper@gmail.com> Const-correct the stack coloring code.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175488 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StackColoring.cpp
cede03886712e18b697f9ec91311d4a8df60c734 19-Feb-2013 Craig Topper <craig.topper@gmail.com> Avoid extra DenseMap lookups in StackColoring::calculateLocalLiveness.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175487 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StackColoring.cpp
cbc6d797054a2bf2a641031f270d38804a6f2295 19-Feb-2013 Craig Topper <craig.topper@gmail.com> Make the dump() function const and reduce the number of hash lookups it performs.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175485 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StackColoring.cpp
252d798fc302ed78bc4b11e66a2382015a25c6e0 19-Feb-2013 Craig Topper <craig.topper@gmail.com> Use a reference into the BlockLiveness DenseMap to avoid repeated hash lookups in collectMarkers.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175484 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StackColoring.cpp
f1af1feeee0f0ec797410762c006211f9c1e2a0f 29-Jan-2013 Edwin Vane <edwin.vane@intel.com> Fixing warnings revealed by gcc release build

Fixed set-but-not-used warnings.

Reviewer: gribozavr


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173810 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StackColoring.cpp
5ed625c3cff2511469e9b3c5131c29fd89ddd482 17-Jan-2013 Jakob Stoklund Olesen <stoklund@2pi.dk> Move MachineTraceMetrics.h into include/llvm/CodeGen.

Let targets use it.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172688 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StackColoring.cpp
0b8c9a80f20772c3793201ab5b251d3520b9cea3 02-Jan-2013 Chandler Carruth <chandlerc@gmail.com> Move all of the header files which are involved in modelling the LLVM IR
into their new header subdirectory: include/llvm/IR. This matches the
directory structure of lib, and begins to correct a long standing point
of file layout clutter in LLVM.

There are still more header files to move here, but I wanted to handle
them in separate commits to make tracking what files make sense at each
layer easier.

The only really questionable files here are the target intrinsic
tablegen files. But that's a battle I'd rather not fight today.

I've updated both CMake and Makefile build systems (I think, and my
tests think, but I may have missed something).

I've also re-sorted the includes throughout the project. I'll be
committing updates to Clang, DragonEgg, and Polly momentarily.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171366 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StackColoring.cpp
38b06020dbd804f01ee3802779a52c05cffdf87d 21-Dec-2012 Roman Divacky <rdivacky@freebsd.org> Remove duplicate includes.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@170902 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StackColoring.cpp
d04a8d4b33ff316ca4cf961e06c9e312eff8e64f 03-Dec-2012 Chandler Carruth <chandlerc@gmail.com> Use the new script to sort the includes of every file under lib.

Sooooo many of these had incorrect or strange main module includes.
I have manually inspected all of these, and fixed the main module
include to be the nearest plausible thing I could find. If you own or
care about any of these source files, I encourage you to take some time
and check that these edits were sensible. I can't have broken anything
(I strictly added headers, and reordered them, never removed), but they
may not be the headers you'd really like to identify as containing the
API being implemented.

Many forward declarations and missing includes were added to a header
files to allow them to parse cleanly when included first. The main
module rule does in fact have its merits. =]

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169131 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StackColoring.cpp
f38aa4272c2fcebae4ad10b21ea29874d0edef80 15-Nov-2012 Ulrich Weigand <ulrich.weigand@de.ibm.com> Use std::stable_sort instead of std::sort when sorting stack slots
to guarantee deterministic code generation.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168074 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StackColoring.cpp
83ba06afa8503dc97a0aa5ec033022286959956c 18-Oct-2012 Sebastian Pop <spop@codeaurora.org> Clear unknown mem ops when merging stack slots (pr14090)

When merging stack slots, if StackColoring::remapInstructions gets a
value back from GetUnderlyingObject that it does not know about or is
not itself a stack slot, clear the memory operand in case it aliases
the merged slot. This prevents the introduction of incorrect aliasing
information.

Author: Matthew Curtis <mcurtis@codeaurora.org>

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@166216 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StackColoring.cpp
bf0683f0f75dfb92e73b09718ed278eeab8ba9d2 18-Oct-2012 Sebastian Pop <spop@codeaurora.org> Change MachineFrameInfo::StackObject::Alloca from Value* to AllocaInst*

This more accurately reflects what is actually being stored in the
field.

No functionality change intended.

Author: Matthew Curtis <mcurtis@codeaurora.org>

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@166215 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StackColoring.cpp
a26cadc58d32a739ccf99423922bfc542c1026b1 17-Sep-2012 Nadav Rotem <nrotem@apple.com> Disable the protection from escaped allocas in an attempt to find violating passes. This may break the buildbots. I plan to revert it in a few hours.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164024 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StackColoring.cpp
18e2c290940b67c9dc1196e3c2234e7a20f60ae4 13-Sep-2012 Nadav Rotem <nrotem@apple.com> Rename the flag which protects from escaped allocas, which may come from bugs in user code or in the compiler. Also, dont assert if the protection is not enabled.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163807 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StackColoring.cpp
faf31d01db913b477b749c9f11f18a9471c0a672 13-Sep-2012 Nadav Rotem <nrotem@apple.com> Fix a typo.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163801 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StackColoring.cpp
0cd19b93017fcaba737b15ea4da39c460feb5670 13-Sep-2012 Nadav Rotem <nrotem@apple.com> Stack Coloring: We have code that checks that all of the uses of allocas
are within the lifetime zone. Sometime legitimate usages of allocas are
hoisted outside of the lifetime zone. For example, GEPS may calculate the
address of a member of an allocated struct. This commit makes sure that
we only check (abort regions or assert) for instructions that read and write
memory using stack frames directly. Notice that by allowing legitimate
usages outside the lifetime zone we also stop checking for instructions
which use derivatives of allocas. We will catch less bugs in user code
and in the compiler itself.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163791 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StackColoring.cpp
d76f6eadc8c8511e1c5cd089a8a54e429c19aa60 12-Sep-2012 Nadav Rotem <nrotem@apple.com> Add a flag to disable the code that looks for allocas which escaped the lifetime regions. This is useful for debugging. No testcase because without this check we fail on assertions when finding escaped allocas.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163702 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StackColoring.cpp
dba5de5246f84fe50aef79e464e5aecdf5607ab4 12-Sep-2012 Nadav Rotem <nrotem@apple.com> Enable stack-coloring, in hope that the recent fixes will enable correct dragonegg self-hosting.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163687 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StackColoring.cpp
0a16da445740ca6fcd7a7ca571c1917e77315904 12-Sep-2012 Nadav Rotem <nrotem@apple.com> Stack coloring: remove lifetime intervals which contain escaped allocas.

The input program may contain intructions which are not inside lifetime
markers. This can happen due to a bug in the compiler or due to a bug in
user code (for example, returning a reference to a local variable).
This commit adds checks that all of the instructions in the function and
invalidates lifetime ranges which do not contain all of the instructions.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163678 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StackColoring.cpp
1eba4a7a28f7e0156725518783dc35137869a670 11-Sep-2012 Nadav Rotem <nrotem@apple.com> Dragonegg selfhost exposed additional cases where alloca usage moved outside of lifetime markers. Disabling the pass for now.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163623 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StackColoring.cpp
50bdea299c9c1d4b2d0535a7cc874490ac49fe67 11-Sep-2012 Nadav Rotem <nrotem@apple.com> Enable stack coloring.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163617 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StackColoring.cpp
8754bbbe672450689a5bdc8a198af90144e56f31 11-Sep-2012 Nadav Rotem <nrotem@apple.com> Stack Coloring: Dont crash on dbg values which use stack frames.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163616 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StackColoring.cpp
2de0572caec55e3779857cae0bbcd962af2e495d 10-Sep-2012 Dmitri Gribenko <gribozavr@gmail.com> Remove redundant semicolons which are null statements.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163547 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StackColoring.cpp
8631a90f46f4dada3b2082d81d17846210cfd7d8 10-Sep-2012 Nadav Rotem <nrotem@apple.com> Disable stack coloring because it makes dragonegg fail bootstrapping.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163545 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StackColoring.cpp
b6d52a5b4aa56292ad4085e87b9e5e618f795a1e 10-Sep-2012 Nadav Rotem <nrotem@apple.com> Enable stack coloring.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163539 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StackColoring.cpp
6165dba25f3374ce340b420ab9a360623c26fdc3 10-Sep-2012 Nadav Rotem <nrotem@apple.com> Stack Coloring: Handle the case where END markers come before BEGIN markers properly.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163530 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StackColoring.cpp
ff1b63172d22c148c9180a546262f61a8c334974 10-Sep-2012 Nadav Rotem <nrotem@apple.com> Minor cleanup. No functional change.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163510 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StackColoring.cpp
9438d1e3514ab8801e9c488d9723241af7f4dc91 10-Sep-2012 Nadav Rotem <nrotem@apple.com> Stack Coloring: Debug prints to print the slot number and not the array index.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163509 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StackColoring.cpp
a7de8a61dfae69885203137f3c712ab3d0cd75a4 10-Sep-2012 Nadav Rotem <nrotem@apple.com> Stack Coloring: When searching for disjoint regions, do not compare intervals twice or to theirself.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163508 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StackColoring.cpp
e47feeb823ebf496e82db6a666d4c0fbaeb158b4 10-Sep-2012 Nadav Rotem <nrotem@apple.com> Stack Coloring: Add support for multiple regions of the same slot, within a single basic block.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163507 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StackColoring.cpp
8cc14949053ea4fcba34afc68b30137eff408d66 10-Sep-2012 Nadav Rotem <nrotem@apple.com> Fix a typo in the comment.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163496 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StackColoring.cpp
0aa52ee04e3060974474f6b3f824517c088f07d8 10-Sep-2012 Nadav Rotem <nrotem@apple.com> Add an assertion that the frame index is indeed inside the declared lifetime region.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163495 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StackColoring.cpp
5177b3a8c48adec2acf284fcb8e00775a705a7e2 06-Sep-2012 Roman Divacky <rdivacky@freebsd.org> Dont cast away const needlessly. Found by gcc48 -Wcast-qual.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163324 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StackColoring.cpp
79cb162e5d7aeaa3602bf4a7afa253232f461b33 06-Sep-2012 Nadav Rotem <nrotem@apple.com> Disable stack coloring by default in order to resolve the i386 failures.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163316 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StackColoring.cpp
c05d30601ced172b55be81bb529df6be91d6ae15 06-Sep-2012 Nadav Rotem <nrotem@apple.com> Add a new optimization pass: Stack Coloring, that merges disjoint static allocations (allocas). Allocas are known to be
disjoint if they are marked by disjoint lifetime markers (@llvm.lifetime.XXX intrinsics).



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163299 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StackColoring.cpp