| Commit message (Collapse) | Author | Age | Files | Lines | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
Sometimes register class constraints are trivial, like GR32->GR32_NOSP,
or GPR->rGPR.  Teach InstrEmitter to simply constrain the virtual
register instead of emitting a copy in these cases.
Normally, these copies are handled by the coalescer.  This saves some
coalescer work.
llvm-svn: 140340
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
The function will refuse to use a register class with fewer registers
than MinNumRegs.  This can be used by clients to avoid accidentally
increase register pressure too much.
The default value of MinNumRegs=0 doesn't affect how constrainRegClass()
works.
llvm-svn: 140339
 | 
| | 
| 
| 
| 
| 
| 
|  | 
floating point add/sub of appropriate shuffle vectors.  Does not
synthesize the 256 bit AVX versions because they work differently.
llvm-svn: 140332
 | 
| | 
| 
| 
|  | 
llvm-svn: 140327
 | 
| | 
| 
| 
|  | 
llvm-svn: 140325
 | 
| | 
| 
| 
|  | 
llvm-svn: 140324
 | 
| | 
| 
| 
| 
| 
| 
|  | 
a 64-bit integer register. Move the subreg index definitions to the beginning
of the file.
llvm-svn: 140319
 | 
| | 
| 
| 
|  | 
llvm-svn: 140318
 | 
| | 
| 
| 
| 
| 
|  | 
VK_Mips_GPOFF_LO.
llvm-svn: 140316
 | 
| | 
| 
| 
|  | 
llvm-svn: 140315
 | 
| | 
| 
| 
|  | 
llvm-svn: 140313
 | 
| | 
| 
| 
|  | 
llvm-svn: 140310
 | 
| | 
| 
| 
| 
| 
|  | 
to fix up parameter passing on SM < 2.0
llvm-svn: 140309
 | 
| | 
| 
| 
|  | 
llvm-svn: 140308
 | 
| | 
| 
| 
|  | 
llvm-svn: 140307
 | 
| | 
| 
| 
|  | 
llvm-svn: 140306
 | 
| | 
| 
| 
| 
| 
| 
| 
|  | 
instead of allocating physical registers.
This is part of a work-in-progress overhaul of the PTX register allocation scheme.
llvm-svn: 140305
 | 
| | 
| 
| 
| 
| 
|  | 
in/out in Intel syntax mode. Fixes PR10960
llvm-svn: 140299
 | 
| | 
| 
| 
|  | 
llvm-svn: 140297
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
|  | 
- x87: no min or max.
- SSE1: min/max for single precision scalars and vectors.
- SSE2: min/max for single and double precision scalars and vectors.
- AVX: as SSE2, but also supports the wider ymm vectors. (this is covered by the isTypeLegal check)
llvm-svn: 140296
 | 
| | 
| 
| 
|  | 
llvm-svn: 140295
 | 
| | 
| 
| 
|  | 
llvm-svn: 140294
 | 
| | 
| 
| 
|  | 
llvm-svn: 140292
 | 
| | 
| 
| 
|  | 
llvm-svn: 140291
 | 
| | 
| 
| 
| 
| 
|  | 
other test failures I caused.
llvm-svn: 140284
 | 
| | 
| 
| 
| 
| 
|  | 
as [pc, #123] rather than simply #123.
llvm-svn: 140283
 | 
| | 
| 
| 
| 
| 
|  | 
Few weeks ago, llvm completely inverted the debug info graph. Earlier each debug info node used to keep track of its compile unit, now compile unit keeps track of important nodes. One impact of this change is that the global variable's do not have any context, which should be checked before deciding to use AT_specification DIE.
llvm-svn: 140282
 | 
| | 
| 
| 
| 
| 
|  | 
uninitialized in this function.
llvm-svn: 140281
 | 
| | 
| 
| 
| 
| 
|  | 
This makes sure that the unwind destination of an invoke is a landing pad.
llvm-svn: 140280
 | 
| | 
| 
| 
| 
| 
| 
|  | 
This inserts a cleanup landingpad instruction and a resume to mimic the old
unwind instruction.
llvm-svn: 140277
 | 
| | 
| 
| 
| 
| 
| 
| 
|  | 
completely.
Otherwise we'll spend a ridiculous amount of time pretty printing debug output and then discarding it.
llvm-svn: 140276
 | 
| | 
| 
| 
|  | 
llvm-svn: 140275
 | 
| | 
| 
| 
| 
| 
|  | 
patch contributed by Jia Liu!
llvm-svn: 140273
 | 
| | 
| 
| 
| 
| 
|  | 
they have a fallback path now.
llvm-svn: 140267
 | 
| | 
| 
| 
| 
| 
|  | 
MipsArchVersion needs to be initialized to Mips32.
llvm-svn: 140261
 | 
| | 
| 
| 
|  | 
llvm-svn: 140260
 | 
| | 
| 
| 
|  | 
llvm-svn: 140258
 | 
| | 
| 
| 
| 
| 
|  | 
should be initialized to UnknownABI.
llvm-svn: 140254
 | 
| | 
| 
| 
| 
| 
| 
|  | 
Vector SetCC result types need to be type-legalized.
This code worked before because scalar result types are known to be legal.
llvm-svn: 140249
 | 
| | 
| 
| 
| 
| 
|  | 
comes to replace the problematic check that was removed in r139995.
llvm-svn: 140246
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
assert(!"error message");
To:
  assert(0 && "error message");
which is more consistant across the code base.
llvm-svn: 140234
 | 
| | 
| 
| 
|  | 
llvm-svn: 140233
 | 
| | 
| 
| 
| 
| 
|  | 
Check if architecture & ABI combination is valid.
llvm-svn: 140230
 | 
| | 
| 
| 
|  | 
llvm-svn: 140229
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
This is still a hack until we can teach tblgen to generate the
optional CPSR operand rather than an implicit CPSR def. But the
strangeness is now limited to the selection DAG. ADD/SUB MI's no
longer have implicit CPSR defs, nor do we allow flag setting variants
of these opcodes in machine code. There are several corner cases to
consider, and getting one wrong would previously lead to nasty
miscompilation. It's not the first time I've debugged one, so this
time I added enough verification to ensure it won't happen again.
llvm-svn: 140228
 | 
| | 
| 
| 
|  | 
llvm-svn: 140227
 | 
| | 
| 
| 
| 
| 
|  | 
that the disassembler outputs annotations on with the streamer that the InstPrinter will print them on.
llvm-svn: 140217
 | 
| | 
| 
| 
|  | 
llvm-svn: 140214
 | 
| | 
| 
| 
| 
| 
| 
| 
|  | 
SCCPSolver::ResolvedUndefsIn.  If we do, we can end up in a situation where a function is resolved to return a constant, but the caller is marked overdefined, which confuses the code later.
<rdar://problem/9956541> (again).
llvm-svn: 140210
 | 
| | 
| 
| 
| 
| 
| 
|  | 
subvector inserts and extracts. Initial patch by Rackover, Zvi with
some tweak done by me.
llvm-svn: 140204
 |