| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
| |
being done for malloc)
fix a few typos found by Chad in my previous commit
llvm-svn: 156110
|
|
|
|
|
|
| |
This patch creates and optimizes packets as per Hexagon ISA rules.
llvm-svn: 156109
|
|
|
|
| |
llvm-svn: 156102
|
|
|
|
| |
llvm-svn: 156077
|
|
|
|
|
|
| |
This adds new instructions for Hexagon V4 architecture.
llvm-svn: 156071
|
|
|
|
|
|
|
|
| |
there is no need to fallback to visitCallSite.
This gives a 0.9% in a test case
llvm-svn: 156069
|
|
|
|
|
|
| |
vector elements.
llvm-svn: 156060
|
|
|
|
|
|
| |
lower half correctly. Missed in r155982.
llvm-svn: 156059
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
to catch cases like:
%reg1024<def> = MOV r1
%reg1025<def> = MOV r0
%reg1026<def> = ADD %reg1024, %reg1025
r0 = MOV %reg1026
By commuting ADD, it let coalescer eliminate all of the copies. However, there
was a bug in the heuristics where it ended up commuting the ADD in:
%reg1024<def> = MOV r0
%reg1025<def> = MOV 0
%reg1026<def> = ADD %reg1024, %reg1025
r0 = MOV %reg1026
That did no benefit but rather ensure the last MOV would not be coalesced.
rdar://11355268
llvm-svn: 156048
|
|
|
|
|
|
|
|
|
|
| |
The ensures that virtual registers always belong to an allocatable class.
If your target attempts to create a vreg for an operand that has no
allocatable register subclass, you will crash quickly.
This ensures that targets define register classes as intended.
llvm-svn: 156046
|
|
|
|
| |
llvm-svn: 156034
|
|
|
|
|
|
| |
just like it now knows for FMULs.
llvm-svn: 156029
|
|
|
|
|
|
|
| |
and Hybrid for 32 bit, since benchmarks show ILP scheduling is better
most of the time.
llvm-svn: 156028
|
|
|
|
|
|
| |
Lincroft and Medfield.
llvm-svn: 156025
|
|
|
|
| |
llvm-svn: 156023
|
|
|
|
| |
llvm-svn: 156019
|
|
|
|
|
|
| |
be used by clang-tblgen.
llvm-svn: 156000
|
|
|
|
|
|
| |
by providing the latencies for the instructions in X86InstrFPStack.td.
llvm-svn: 155996
|
|
|
|
|
|
|
|
| |
The commit is intended to fix rdar://10961709.
But it is the root cause of PR12720.
Revert it for now.
llvm-svn: 155992
|
|
|
|
| |
llvm-svn: 155986
|
|
|
|
|
|
|
| |
methods. Use a weak value handle to keep up with this.
PR12245
llvm-svn: 155984
|
|
|
|
| |
llvm-svn: 155983
|
|
|
|
|
|
| |
for AsmPrinter.
llvm-svn: 155982
|
|
|
|
|
|
| |
the MachO spec.
llvm-svn: 155976
|
|
|
|
| |
llvm-svn: 155960
|
|
|
|
| |
llvm-svn: 155959
|
|
|
|
| |
llvm-svn: 155957
|
|
|
|
| |
llvm-svn: 155956
|
|
|
|
|
|
| |
PR10799
llvm-svn: 155954
|
|
|
|
| |
llvm-svn: 155947
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Aliases for adding a negative immediate when using an explicit 'w'
suffix. E.g.,
adds.w r2, #-16
adds.w r2, r2, #-16
addw r2, #-16
addw r2, #-16
addw r2, r2, #-16
rdar://11330769
llvm-svn: 155946
|
|
|
|
|
|
|
|
|
|
| |
Expressions for movw/movt don't always have an :upper16: or :lower16:
on them and that's ok. When they don't, it's just a plain [0-65536]
immediate result, effectively the same as a :lower16: variant kind.
rdar://10550147
llvm-svn: 155941
|
|
|
|
|
|
|
|
|
| |
in order to avoid assertion failures in the register scavenger. The assertion
failures were “Bad machine code: Using an undefined physical register” and
“Bad machine code: MBB exits via unconditional fall-through but its successor
differs from its CFG successor!”.
llvm-svn: 155930
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Previously, an unsupported/unknown assembler directive issued a warning.
That's generally unsafe, and inconsistent with the behaviour of pretty
much every system assembler. Now that the MC assemblers are mature
enough to be the default on multiple targets, it's reasonable to
issue errors for these.
For target or platform directives that need to stay warnings, we
should add explicit handlers for them in, e.g., ELFAsmParser.cpp,
DarwinAsmParser.cpp, et. al., and issue the warning there.
rdar://9246275
llvm-svn: 155926
|
|
|
|
|
|
|
|
|
|
|
|
| |
The caller is already responsible for eating any additional input on the
line. Putting an additional EatToEndOfStatement() in ParseStatement()
causes an entire extra statement to be consumed when treating warnings
as errors. For example, test/MC/macros.s will assert() because the
.endmacro directive is missed as a result.
rdar://11355843
llvm-svn: 155925
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch will optimize the following cases on X86
(a > b) ? (a-b) : 0
(a >= b) ? (a-b) : 0
(b < a) ? (a-b) : 0
(b <= a) ? (a-b) : 0
FROM
movl %edi, %ecx
subl %esi, %ecx
cmpl %edi, %esi
movl $0, %eax
cmovll %ecx, %eax
TO
xorl %eax, %eax
subl %esi, %edi
cmovll %eax, %edi
movl %edi, %eax
rdar: 10734411
llvm-svn: 155919
|
|
|
|
|
|
| |
(to generate debug info for local variables) if stack needs realignment
llvm-svn: 155917
|
|
|
|
| |
llvm-svn: 155915
|
|
|
|
| |
llvm-svn: 155909
|
|
|
|
|
|
|
|
|
|
|
| |
- Improved parameter names for clarity
- Added comments
- emitCommonSymbols should return void because its return value is not being
used anywhere
- Attempt to reduce the usage of the RelocationValueRef type. Restricts it
for a single goal and may serve as a step for eventual removal.
llvm-svn: 155908
|
|
|
|
| |
llvm-svn: 155907
|
|
|
|
|
|
|
|
|
| |
The TargetPassManager's default constructor wants to initialize the PassManager
to 'null'. But it's illegal to bind a null reference to a null l-value. Make the
ivar a pointer instead.
PR12468
llvm-svn: 155902
|
|
|
|
| |
llvm-svn: 155899
|
|
|
|
|
|
|
|
|
| |
- There's no point having a different type for the local and global symbol
tables.
- Renamed SymbolTable to GlobalSymbolTable to clarify the intention
- Improved const correctness where relevant
llvm-svn: 155898
|
|
|
|
|
|
| |
Bulldozer feature list.
llvm-svn: 155897
|
|
|
|
| |
llvm-svn: 155896
|
|
|
|
| |
llvm-svn: 155891
|
|
|
|
|
|
| |
and HasCLMUL predicates.
llvm-svn: 155890
|
|
|
|
| |
llvm-svn: 155888
|
|
|
|
| |
llvm-svn: 155885
|