| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
| |
llvm-svn: 174854
|
| |
|
|
|
|
|
|
| |
I have some uncommitted changes to the cast code that catch this sort of thing
at compile-time but I still need to do some other cleanup before I can enable
it.
llvm-svn: 174853
|
| |
|
|
| |
llvm-svn: 174852
|
| |
|
|
|
|
|
|
| |
support for updating SlotIndexes to MachineBasicBlock::SplitCriticalEdge(). This
calls renumberIndexes() every time; it should be improved to only renumber
locally.
llvm-svn: 174851
|
| |
|
|
|
|
| |
both LiveVariables and LiveIntervals.
llvm-svn: 174850
|
| |
|
|
|
|
|
|
|
| |
This reads the attribute groups. It currently doesn't do anything with them.
NOTE: In the commit to the bitcode writer, the format *may* change in the near
future. Which means that this code would also change.
llvm-svn: 174849
|
| |
|
|
| |
llvm-svn: 174848
|
| |
|
|
| |
llvm-svn: 174847
|
| |
|
|
| |
llvm-svn: 174846
|
| |
|
|
|
|
|
|
|
| |
This is some initial code for emitting the attribute groups into the bitcode.
NOTE: This format *may* change! Do not rely upon the attribute groups' bitcode
not changing.
llvm-svn: 174845
|
| |
|
|
|
|
|
| |
Attribute groups are essentially all AttributeSets which are used by the
program. Enumerate them here.
llvm-svn: 174844
|
| |
|
|
| |
llvm-svn: 174839
|
| |
|
|
| |
llvm-svn: 174834
|
| |
|
|
| |
llvm-svn: 174833
|
| |
|
|
| |
llvm-svn: 174832
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
present, it currently verifies them with the MachineVerifier, and this passed
all of the test cases in 'make check' (when accounting for existing verifier
errors). There were some assertion failures in the two-address pass, but they
also happened on code without phis and look like they are caused by different
kill flags from LiveIntervals.
The only part that doesn't work is the critical edge splitting heuristic,
because there isn't currently an efficient way to update LiveIntervals after
splitting an edge. I'll probably start by implementing the slow fallback and
test that it works before tackling the fast path for single-block ranges. The
existing code that updates LiveVariables is fairly slow as it is.
There isn't a command-line option for enabling this; instead, just edit
PHIElimination.cpp to require LiveIntervals.
llvm-svn: 174831
|
| |
|
|
| |
llvm-svn: 174830
|
| |
|
|
|
|
| |
make sense anymore.
llvm-svn: 174829
|
| |
|
|
| |
llvm-svn: 174828
|
| |
|
|
| |
llvm-svn: 174827
|
| |
|
|
|
|
| |
type char, which can't have TBAA tags.
llvm-svn: 174826
|
| |
|
|
| |
llvm-svn: 174825
|
| |
|
|
| |
llvm-svn: 174824
|
| |
|
|
| |
llvm-svn: 174817
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The original syntax for the attribute groups was ambiguous. For example:
declare void @foo() #1
#0 = attributes { noinline }
The '#0' would be parsed as an attribute reference for '@foo' and not as a
top-level entity. In order to continue forward while waiting for a decision on
what the correct syntax is, I'm changing it to this instead:
declare void @foo() #1
attributes #0 = { noinline }
Repeat: This is TEMPORARY until we decide what the correct syntax should be.
llvm-svn: 174813
|
| |
|
|
|
|
| |
We are going to place the AttributeSet into a DenseMap during assembly writing.
llvm-svn: 174812
|
| |
|
|
|
|
| |
report_fatal_error)
llvm-svn: 174808
|
| |
|
|
| |
llvm-svn: 174807
|
| |
|
|
| |
llvm-svn: 174806
|
| |
|
|
| |
llvm-svn: 174804
|
| |
|
|
|
|
| |
not enabled yet).
llvm-svn: 174803
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
bitcode writer would generate abbrev records saying that the abbrev should be
filled with fixed zero-bit bitfields (this happens in the .bc writer when
the number of types used in a module is exactly one, since log2(1) == 0).
In this case, just handle it as a literal zero. We can't "just fix" the writer
without breaking compatibility with existing bc files, so have the abbrev reader
do the substitution.
Strengthen the assert in read to reject reads of zero bits so we catch such
crimes in the future, and remove the special case designed to handle this.
llvm-svn: 174801
|
| |
|
|
|
|
|
|
|
|
|
| |
instead of always 32-bits at a time) with two changes:
1. Make Read(0) always return zero without affecting the state of our cursor.
2. Hack word_t to always be 32 bits, as staging.
These two caveats will change shortly.
llvm-svn: 174800
|
| |
|
|
| |
llvm-svn: 174791
|
| |
|
|
| |
llvm-svn: 174790
|
| |
|
|
|
|
|
|
|
| |
Handle chains in which the same offset is used for both loads and
stores to the same array.
Fixes rdar://11410078.
llvm-svn: 174789
|
| |
|
|
| |
llvm-svn: 174786
|
| |
|
|
|
|
| |
line table entries in assembly.
llvm-svn: 174785
|
| |
|
|
|
|
| |
This is part of the plan to delete LiveVariables.
llvm-svn: 174783
|
| |
|
|
|
|
| |
Enables raw_ostream I/O for BasicBlockPass.
llvm-svn: 174776
|
| |
|
|
|
|
|
|
| |
This uses a liveness algorithm that does not depend on data from the
LiveVariables analysis, it is the first step towards removing
LiveVariables completely.
llvm-svn: 174774
|
| |
|
|
|
|
|
|
|
|
|
| |
check_cxx_symbol_exists requires CMake 2.8.6, so even though I
recommended it to Owen it's probably better to stay away for now.
This check is not technically correct because we're checking <math.h>
but then using <cmath> in the actual code, but if we run into problems we
can do the same sort of dance as isinf() and isnan() where we check /both/
headers and then write a wrapper header around them.
llvm-svn: 174773
|
| |
|
|
|
|
|
|
|
| |
to use -Wfoo instead of -Wno-foo. This works around a bug in some versions of
gcc, where it will silently accept an unknown -Wno-foo option, but will
generate an error for a compile which uses -Wno-foo if that compile also
triggers any warnings.
llvm-svn: 174770
|
| |
|
|
| |
llvm-svn: 174764
|
| |
|
|
|
|
|
| |
Also output a more useful error message.
NOTE: This is a candidate for the Mesa stable branch
llvm-svn: 174763
|
| |
|
|
|
|
|
|
|
|
|
|
| |
This fixes a couple of bugs and incorrect assumptions,
in total four more piglit tests now pass.
v2: fix small bug in the dominator updating
Patch by: Christian König
Signed-off-by: Christian König <christian.koenig@amd.com>
llvm-svn: 174762
|
| |
|
|
|
|
|
|
|
|
| |
Patch by: Christian König
Intersecting loop handling was wrong.
Signed-off-by: Christian König <christian.koenig@amd.com>
Tested-by: Michel Dänzer <michel.daenzer@amd.com>
llvm-svn: 174761
|
| |
|
|
|
|
|
|
|
|
| |
Otherwise we sometimes produce invalid code.
Patch by: Christian König
Signed-off-by: Christian König <christian.koenig@amd.com>
Tested-by: Michel Dänzer <michel.daenzer@amd.com>
llvm-svn: 174760
|
| |
|
|
| |
llvm-svn: 174756
|
| |
|
|
| |
llvm-svn: 174749
|