| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
| |
T2_i8 ones. Take that into consideration when determining stack size limit for reserving register scavenging slot.
llvm-svn: 77642
|
|
|
|
|
|
| |
support multiple different pointer register classes.
llvm-svn: 77501
|
|
|
|
| |
llvm-svn: 77350
|
|
|
|
| |
llvm-svn: 77301
|
|
|
|
|
|
|
|
|
|
|
| |
- This change also makes it possible to switch between ARM / Thumb on a
per-function basis.
- Fixed thumb2 routine which expand reg + arbitrary immediate. It was using
using ARM so_imm logic.
- Use movw and movt to do reg + imm when profitable.
- Other code clean ups and minor optimizations.
llvm-svn: 77300
|
|
|
|
| |
llvm-svn: 77227
|
|
|
|
| |
llvm-svn: 77222
|
|
|
|
|
|
| |
This also fixes potential problems in ARMBaseInstrInfo routines not recognizing thumb1 instructions when 32-bit and 16-bit instructions mix.
llvm-svn: 77218
|
|
|
|
|
|
| |
more getOpcode calls.
llvm-svn: 77181
|
|
|
|
| |
llvm-svn: 77164
|
|
|
|
| |
llvm-svn: 77041
|
|
|
|
|
|
| |
thanks to contexts-on-types. More to come.
llvm-svn: 77011
|
|
|
|
|
|
| |
instructions on all sub-targets.
llvm-svn: 76925
|
|
|
|
|
|
| |
elimination more exactly for Thumb-2 to get better code gen.
llvm-svn: 76919
|
|
|
|
|
|
| |
that don't allow negative offsets. During frame elimination convert *i12 opcode to a *i8 when necessary due to a negative offset.
llvm-svn: 76883
|
|
|
|
| |
llvm-svn: 76872
|
|
|
|
| |
llvm-svn: 76725
|
|
|
|
| |
llvm-svn: 76702
|
|
|
|
|
|
|
|
| |
rematerialized instructions.
Avoid remat'ing instructions whose def have sub-register indices for now. It's just really really hard to get all the cases right.
llvm-svn: 75900
|
|
|
|
| |
llvm-svn: 75703
|
|
|
|
|
|
|
|
|
| |
This adds location info for all llvm_unreachable calls (which is a macro now) in
!NDEBUG builds.
In NDEBUG builds location info and the message is off (it only prints
"UREACHABLE executed").
llvm-svn: 75640
|
|
|
|
|
|
| |
fixes SingleSource/Benchmarks/Stanford/Queens (among others).
llvm-svn: 75513
|
|
|
|
|
|
|
|
|
| |
Make llvm_unreachable take an optional string, thus moving the cerr<< out of
line.
LLVM_UNREACHABLE is now a simple wrapper that makes the message go away for
NDEBUG builds.
llvm-svn: 75379
|
|
|
|
|
|
|
|
| |
modifies CPSR when they are outside the IT blocks, or they can predicated when in Thumb2. Move the implicit def of CPSR to an optional def which defaults CPSR. This allows the 's' bit to be toggled dynamically.
A side-effect of this change is asm printer is now using unified assembly. There are some minor clean ups and fixes as well.
llvm-svn: 75359
|
|
|
|
| |
llvm-svn: 75158
|
|
|
|
| |
llvm-svn: 75067
|
|
|
|
|
|
| |
the immediates are no longer encoded in the imm8 + rot format, that are left as it is. The encoding is now done in ams printing and code emission time instead.
llvm-svn: 75048
|
|
|
|
|
|
| |
Finish converting lib/Target.
llvm-svn: 75043
|
|
|
|
| |
llvm-svn: 75036
|
|
|
|
| |
llvm-svn: 75020
|
|
|
|
|
|
|
| |
cerr+abort -> llvm_report_error
assert(0)+abort -> LLVM_UNREACHABLE (assert(0)+llvm_unreachable-> abort() included)
llvm-svn: 75018
|
|
llvm-svn: 75016
|