| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
| |
NV_CONTRIB
llvm-svn: 157485
|
| |
|
|
|
|
|
| |
add support for select
add experimental support for alloc_size metadata
llvm-svn: 157481
|
| |
|
|
|
|
|
|
|
|
| |
to pass around a struct instead of a large set of individual values. This
cleans up the interface and allows more information to be added to the struct
for future targets without requiring changes to each and every target.
NV_CONTRIB
llvm-svn: 157479
|
| |
|
|
|
|
| |
msvc-incompatible. (compatible to mingw32 and netbsd, though)
llvm-svn: 157474
|
| |
|
|
|
|
| |
stack-align=8, eg. win32 and netbsd.
llvm-svn: 157471
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
with arbitrary topologies (previously it would give up when hitting a diamond
in the use graph for example). The testcase from PR12764 is now reduced from
a pile of additions to the optimal 1617*%x0+208. In doing this I changed the
previous strategy of dropping all uses for expression leaves to one of dropping
all but one use. This works out more neatly (but required a bunch of tweaks)
and is also safer: some recently fixed bugs during recursive linearization were
because the linearization code thinks it completely owns a node if it has no uses
outside the expression it is linearizing. But if the node was also in another
expression that had been linearized (and thus all uses of the node from that
expression dropped) then the conclusion that it is completely owned by the
expression currently being linearized is wrong. Keeping one use from within each
linearized expression avoids this kind of mistake.
llvm-svn: 157467
|
| |
|
|
| |
llvm-svn: 157455
|
| |
|
|
| |
llvm-svn: 157451
|
| |
|
|
| |
llvm-svn: 157450
|
| |
|
|
|
|
|
| |
Store (debugging) register names as offsets into a string table instead
of as char pointers.
llvm-svn: 157449
|
| |
|
|
|
|
| |
small bug in the process.
llvm-svn: 157446
|
| |
|
|
| |
llvm-svn: 157438
|
| |
|
|
|
|
| |
(except the part about choosing direction)
llvm-svn: 157437
|
| |
|
|
| |
llvm-svn: 157433
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Like this:
foreach i = 0-127 in ...
Use braces for composite ranges:
foreach i = {0-3,9-7} in ...
llvm-svn: 157432
|
| |
|
|
|
|
| |
Only fully expanded Records should go into RecordKeeper.
llvm-svn: 157431
|
| |
|
|
|
|
| |
Use static type checking.
llvm-svn: 157430
|
| |
|
|
| |
llvm-svn: 157429
|
| |
|
|
| |
llvm-svn: 157428
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The Hazard checker implements in-order contraints, or interlocked
resources. Ready instructions with hazards do not enter the available
queue and are not visible to other heuristics.
The major code change is the addition of SchedBoundary to encapsulate
the state at the top or bottom of the schedule, including both a
pending and available queue.
The scheduler now counts cycles in sync with the hazard checker. These
are minimum cycle counts based on known hazards.
Targets with no itinerary (x86_64) currently remain at cycle 0. To fix
this, we need to provide some maximum issue width for all targets. We
also need to add the concept of expected latency vs. minimum latency.
llvm-svn: 157427
|
| |
|
|
| |
llvm-svn: 157426
|
| |
|
|
| |
llvm-svn: 157425
|
| |
|
|
| |
llvm-svn: 157424
|
| |
|
|
| |
llvm-svn: 157423
|
| |
|
|
| |
llvm-svn: 157422
|
| |
|
|
|
|
| |
Patch by Nicklas Bo Jensen.
llvm-svn: 157421
|
| |
|
|
|
|
|
|
| |
This back-end was deprecated in favor of the NVPTX back-end.
NV_CONTRIB
llvm-svn: 157417
|
| |
|
|
|
|
| |
operand.
llvm-svn: 157416
|
| |
|
|
| |
llvm-svn: 157415
|
| |
|
|
|
|
|
|
| |
Expand test case for this.
Patch by Reed Kotler.
llvm-svn: 157410
|
| |
|
|
|
|
|
|
| |
First code from the Mips16 compiler. Includes trivial test program.
Patch by Reed Kotler.
llvm-svn: 157408
|
| |
|
|
|
|
| |
I'm not sure it's really worth expressing this as a range rather than 3 specific equalities, but it doesn't seem fundamentally wrong either.
llvm-svn: 157398
|
| |
|
|
|
|
|
|
|
|
| |
Submitted by: Anton Lokhmotov <Anton.Lokhmotov@arm.com>
Approved by: o Anton Korobeynikov
o Micah Villmow
o David Neto
llvm-svn: 157393
|
| |
|
|
| |
llvm-svn: 157389
|
| |
|
|
|
|
|
| |
LowerSwitch::Clusterify : main functinality was replaced with CRSBuilder::optimize, so big part of Clusterify's code was reduced.
test/Transform/LowerSwitch/feature.ll - this test was refactored: grep + count was replaced with FileCheck usage.
llvm-svn: 157384
|
| |
|
|
| |
llvm-svn: 157381
|
| |
|
|
| |
llvm-svn: 157380
|
| |
|
|
|
|
| |
cycle.
llvm-svn: 157378
|
| |
|
|
| |
llvm-svn: 157377
|
| |
|
|
| |
llvm-svn: 157375
|
| |
|
|
| |
llvm-svn: 157374
|
| |
|
|
|
|
| |
to pass the tables around.
llvm-svn: 157373
|
| |
|
|
| |
llvm-svn: 157371
|
| |
|
|
|
|
| |
sizeof/sizeof.
llvm-svn: 157369
|
| |
|
|
| |
llvm-svn: 157368
|
| |
|
|
|
|
| |
uint16_t. Simplify loop iterating over one of those tables. No functional change intended.
llvm-svn: 157367
|
| |
|
|
|
|
| |
intended.
llvm-svn: 157358
|
| |
|
|
| |
llvm-svn: 157357
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Live ranges with a constrained register class may benefit from splitting
around individual uses. It allows the remaining live range to use a
larger register class where it may allocate. This is like spilling to a
different register class.
This is only attempted on constrained register classes.
<rdar://problem/11438902>
llvm-svn: 157354
|
| |
|
|
| |
llvm-svn: 157349
|