| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
In very rare cases caused by irreducible control flow, the dominating
block can have the same trace head without actually being part of the
trace.
As long as such a dominator still has valid instruction depths, it is OK
to use it for computing instruction depths.
Rename the function to avoid lying, and add a check that instruction
depths are computed for the dominator.
llvm-svn: 176668
|
| |
|
|
| |
llvm-svn: 176661
|
| |
|
|
| |
llvm-svn: 176660
|
| |
|
|
|
|
| |
rdar://13370942
llvm-svn: 176659
|
| |
|
|
| |
llvm-svn: 176651
|
| |
|
|
|
|
| |
rdar://13370942
llvm-svn: 176649
|
| |
|
|
| |
llvm-svn: 176648
|
| |
|
|
| |
llvm-svn: 176647
|
| |
|
|
| |
llvm-svn: 176646
|
| |
|
|
| |
llvm-svn: 176642
|
| |
|
|
|
|
| |
coding in the other places of the file.
llvm-svn: 176641
|
| |
|
|
| |
llvm-svn: 176638
|
| |
|
|
| |
llvm-svn: 176637
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
rdar:13370002 [pre-RA-sched] assertion: released too many times
I tracked this down to an earlier hack that is no longer applicable
and interfered with normal scheduler logic. With the changes in
r176037, it was causing an instruction to be scheduled multiple times.
I have an external test case that I tried hard to reduce and
failed. I can't even reproduce with llc.
llvm-svn: 176636
|
| |
|
|
|
|
|
|
|
|
| |
That can usually be lowered efficiently and is common in sandybridge code.
It would be nice to do this in DAGCombiner but we can't insert arbitrary
BUILD_VECTORs this late.
Fixes PR15462.
llvm-svn: 176634
|
| |
|
|
|
|
|
| |
different size argument list and without attributes in the
arguments.
llvm-svn: 176632
|
| |
|
|
|
|
|
|
| |
v2: update CMakeLists.txt as well
Signed-off-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
llvm-svn: 176626
|
| |
|
|
|
|
| |
Signed-off-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
llvm-svn: 176625
|
| |
|
|
|
|
|
|
| |
v2: fix R600 regressions
Signed-off-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
llvm-svn: 176624
|
| |
|
|
|
|
| |
Signed-off-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
llvm-svn: 176623
|
| |
|
|
|
|
|
|
| |
Just encode the type as target specific attribute.
Signed-off-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
llvm-svn: 176622
|
| |
|
|
|
|
| |
Signed-off-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
llvm-svn: 176621
|
| |
|
|
|
|
| |
Signed-off-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
llvm-svn: 176620
|
| |
|
|
|
|
|
|
|
| |
into the actual gcov file.
Instead of using the bottom 4 bytes as the function identifier, use a counter.
This makes the identifier numbers stable across multiple runs.
llvm-svn: 176616
|
| |
|
|
| |
llvm-svn: 176615
|
| |
|
|
|
|
|
|
|
| |
Just scalarize the element and rebuild a vector of the result type
from that.
rdar://13281568
llvm-svn: 176614
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
We now emit a line table for each compile unit. To reduce the prologue size
of each line table, the files and directories used by each compile unit are
stored in std::map<unsigned, std::vector< > > instead of std::vector< >.
The prologue for a lto'ed image can be as big as 93K. Duplicating 93K for each
compile unit causes a huge increase of debug info. With this patch, each
prologue will only emit the files required by the compile unit.
rdar://problem/13342023
llvm-svn: 176605
|
| |
|
|
| |
llvm-svn: 176604
|
| |
|
|
| |
llvm-svn: 176602
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Fixes rdar:13349374.
Volatile loads and stores need to be preserved even if the language
standard says they are undefined. "volatile" in this context means "get
out of the way compiler, let my platform handle it".
Additionally, this is the only way I know of with llvm to write to the
first page (when hardware allows) without dropping to assembly.
llvm-svn: 176599
|
| |
|
|
|
|
|
|
|
|
|
| |
- Phi nodes should be replaced/updated after lowering CMOV into branch
because 'mainMBB' updating operand in Phi node is changed.
- Add EFLAGS in livein before lowering the 2nd CMOV. It's necessary as
we will reuse the EFLAGS generated before the 1st lowered CMOV, which
won't clobber EFLAGS. However, we need explicitly specify that.
- '-attr=-cmov' test case are added.
llvm-svn: 176598
|
| |
|
|
|
|
| |
In N64-static, GOT address is needed to compute the branch address.
llvm-svn: 176580
|
| |
|
|
|
|
|
| |
Always print options that differ from their implicit default. At least
for simple option types.
llvm-svn: 176572
|
| |
|
|
|
|
| |
This way, clang -mllvm -print-options shows that the driver is overriding it.
llvm-svn: 176569
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
"invariant.load" metadata.
The "invariant.load" metadata indicates the memory unit being accessed is immutable.
A load annotated with this metadata can be moved across any store.
As I am not sure if it is legal to move such loads across barrier/fence, this
change dose not allow such transformation.
rdar://11311484
Thank Arnold for code review.
llvm-svn: 176562
|
| |
|
|
|
|
|
|
|
|
| |
When considering folding a bitcast of an alloca into the alloca itself,
make sure we don't shrink the amount of memory being allocated, or
things rapidly go sideways.
rdar://13324424
llvm-svn: 176547
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
- Clear 'mayStore' flag when loading from the atomic variable before the
spin loop
- Clear kill flag from one use to multiple use in registers forming the
address to that atomic variable
- don't use a physical register as live-in register in BB (neither entry
nor landing pad.) by copying it into virtual register
(patch by Cameron Zwarich)
llvm-svn: 176538
|
| |
|
|
| |
llvm-svn: 176537
|
| |
|
|
|
|
|
| |
This calling convention was added just to handle functions which return vector
of floats. The fix committed in r165585 solves the problem.
llvm-svn: 176530
|
| |
|
|
|
|
| |
returned in registers $2 and $4.
llvm-svn: 176527
|
| |
|
|
|
|
| |
handle fp128 returns.
llvm-svn: 176523
|
| |
|
|
|
|
| |
point registers.
llvm-svn: 176521
|
| |
|
|
|
|
| |
parameters from floating point registers if target is mips64 hard float.
llvm-svn: 176520
|
| |
|
|
|
|
|
|
|
|
|
| |
This patch adds many more functions to the target library information.
All of the functions being added were discovered while doing the migration
of the simplify-libcalls attribute annotation functionality to the
functionattrs pass. As a part of that work the attribute annotation logic
will query TLI to determine if a function should be annotated or not.
Signed-off-by: Meador Inge <meadori@codesourcery.com>
llvm-svn: 176514
|
| |
|
|
| |
llvm-svn: 176513
|
| |
|
|
| |
llvm-svn: 176508
|
| |
|
|
| |
llvm-svn: 176507
|
| |
|
|
| |
llvm-svn: 176505
|
| |
|
|
| |
llvm-svn: 176501
|
| |
|
|
| |
llvm-svn: 176500
|