| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
| |
rdar://9795790
llvm-svn: 164577
|
| |
|
|
|
|
|
|
|
| |
Even out-of-line jump tables can be in the code section, so mark them
as data-regions for those targets which support the directives.
rdar://12362871&12362974
llvm-svn: 164571
|
| |
|
|
|
|
| |
Also remove an unused argument.
llvm-svn: 164567
|
| |
|
|
|
|
|
| |
store when handling byval arguments. Thus preventing reordering of the store
with load with post-RA scheduler.
llvm-svn: 164553
|
| |
|
|
| |
llvm-svn: 164548
|
| |
|
|
| |
llvm-svn: 164459
|
| |
|
|
| |
llvm-svn: 164458
|
| |
|
|
|
|
|
|
|
| |
As before with load instructions, oddities like "asr #32", "rrx" could
be printed incorrectly.
Patch by Chris Lidbury.
llvm-svn: 164456
|
| |
|
|
|
|
|
|
|
| |
This patch fixes load/store instructions to handle less common cases
like "asr #32", "rrx" properly throughout the MC layer.
Patch by Chris Lidbury.
llvm-svn: 164455
|
| |
|
|
| |
llvm-svn: 164453
|
| |
|
|
| |
llvm-svn: 164452
|
| |
|
|
| |
llvm-svn: 164435
|
| |
|
|
| |
llvm-svn: 164434
|
| |
|
|
|
|
| |
TargetLowering's callback functions.
llvm-svn: 164431
|
| |
|
|
| |
llvm-svn: 164430
|
| |
|
|
| |
llvm-svn: 164429
|
| |
|
|
| |
llvm-svn: 164428
|
| |
|
|
| |
llvm-svn: 164420
|
| |
|
|
| |
llvm-svn: 164415
|
| |
|
|
| |
llvm-svn: 164414
|
| |
|
|
|
|
|
| |
non-aligned i32 loads/stores.
rdar://12304911
llvm-svn: 164381
|
| |
|
|
| |
llvm-svn: 164372
|
| |
|
|
|
|
| |
Attributes class. Now with fix.
llvm-svn: 164370
|
| |
|
|
|
|
| |
Quick review against the manual revealed a few obvious mistakes.
llvm-svn: 164361
|
| |
|
|
|
|
| |
- Fix PR5145 and turn on test 8-bit atomic ops
llvm-svn: 164358
|
| |
|
|
|
|
|
| |
- Rewirte most atomic instructions in templates for both better
maintenance and future extensions, such as HLE in TSX.
llvm-svn: 164357
|
| |
|
|
|
|
| |
[-Wunused-variable]
llvm-svn: 164354
|
| |
|
|
|
|
| |
Patch by Reed Kotler.
llvm-svn: 164349
|
| |
|
|
|
|
|
| |
non-halfword-aligned i16 loads/stores.
rdar://12304911
llvm-svn: 164345
|
| |
|
|
| |
llvm-svn: 164344
|
| |
|
|
| |
llvm-svn: 164343
|
| |
|
|
|
|
|
|
|
|
|
| |
The expression based expansion too often results in IR level optimizations
splitting the intermediate values into separate basic blocks, preventing
the formation of the VBSL instruction as the code author intended. In
particular, LICM would often hoist part of the computation out of a loop.
rdar://11011471
llvm-svn: 164340
|
| |
|
|
| |
llvm-svn: 164309
|
| |
|
|
|
|
| |
Attributes class.
llvm-svn: 164308
|
| |
|
|
|
|
| |
hundred bytes of static data. Change unsigned char in same table to uint8_t for explicitness.
llvm-svn: 164285
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Rewrite/merge pseudo-atomic instruction emitters to address the
following issue:
* Reduce one unnecessary load in spin-loop
previously the spin-loop looks like
thisMBB:
newMBB:
ld t1 = [bitinstr.addr]
op t2 = t1, [bitinstr.val]
not t3 = t2 (if Invert)
mov EAX = t1
lcs dest = [bitinstr.addr], t3 [EAX is implicit]
bz newMBB
fallthrough -->nextMBB
the 'ld' at the beginning of newMBB should be lift out of the loop
as lcs (or CMPXCHG on x86) will load the current memory value into
EAX. This loop is refined as:
thisMBB:
EAX = LOAD [MI.addr]
mainMBB:
t1 = OP [MI.val], EAX
LCMPXCHG [MI.addr], t1, [EAX is implicitly used & defined]
JNE mainMBB
sinkMBB:
* Remove immopc as, so far, all pseudo-atomic instructions has
all-register form only, there is no immedidate operand.
* Remove unnecessary attributes/modifiers in pseudo-atomic instruction
td
* Fix issues in PR13458
- Add comprehensive tests on atomic ops on various data types.
NOTE: Some of them are turned off due to missing functionality.
- Revise tests due to the new spin-loop generated.
llvm-svn: 164281
|
| |
|
|
|
|
|
|
|
|
|
| |
- Merge the processing of LOAD_ADD with other atomic load-arith
operations
- Separate the logic getting target constant for atomic-load-op and add
an optimization for atomic-load-add on i16 with negative value
- Optimize a minor case for atomic-fetch-add i16 with negative operand. Test
case is revised.
llvm-svn: 164243
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
lib/Target/PowerPC/PPCISelLowering.{h,cpp}
Rename LowerFormalArguments_Darwin to LowerFormalArguments_Darwin_Or_64SVR4.
Rename LowerFormalArguments_SVR4 to LowerFormalArguments_32SVR4.
Receive small structs right-justified in LowerFormalArguments_Darwin_Or_64SVR4.
Rename LowerCall_Darwin to LowerCall_Darwin_Or_64SVR4.
Rename LowerCall_SVR4 to LowerCall_32SVR4.
Pass small structs right-justified in LowerCall_Darwin_Or_64SVR4.
test/CodeGen/PowerPC/structsinregs.ll
New test.
llvm-svn: 164228
|
| |
|
|
|
|
| |
code emitters and the disassembler table builder. Fix a couple instructions that were still missing VEX_L.
llvm-svn: 164204
|
| |
|
|
|
|
| |
remove code from the code emitters that examined operands to set the L-bit.
llvm-svn: 164202
|
| |
|
|
| |
llvm-svn: 164169
|
| |
|
|
| |
llvm-svn: 164155
|
| |
|
|
| |
llvm-svn: 164150
|
| |
|
|
|
|
| |
Patch by Adhemerval Zanella.
llvm-svn: 164141
|
| |
|
|
| |
llvm-svn: 164139
|
| |
|
|
|
|
| |
Patch by Adhemerval Zanella.
llvm-svn: 164138
|
| |
|
|
|
|
|
|
|
| |
store this and use it to not emit long nops when the CPU is geode which
doesnt support them.
Fixes PR11212.
llvm-svn: 164132
|
| |
|
|
|
|
| |
- when we may clobber the other S-lane by converting an S to a D instruction, make an effort to work out if the S lane is clobberable or not.
llvm-svn: 164114
|
| |
|
|
|
|
| |
model.
llvm-svn: 164092
|
| |
|
|
|
|
|
|
|
| |
aligned address. Based on patch by David Peixotto.
Also use vld1.64 / vst1.64 with 128-bit alignment to take advantage of alignment
hints. rdar://12090772, rdar://12238782
llvm-svn: 164089
|