| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
| |
HexagonMCInstrInfo.cpp was not using any APIs from Hexagon.h. Doing so
is problematic from include-what-you-use perspective, but it is also a
layering issue (it creates a dependency cycle between the primary
Hexagon target library and the MCTargetDesc library).
llvm-svn: 362387
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
to reflect the new license.
We understand that people may be surprised that we're moving the header
entirely to discuss the new license. We checked this carefully with the
Foundation's lawyer and we believe this is the correct approach.
Essentially, all code in the project is now made available by the LLVM
project under our new license, so you will see that the license headers
include that license only. Some of our contributors have contributed
code under our old license, and accordingly, we have retained a copy of
our old license notice in the top-level files in each project and
repository.
llvm-svn: 351636
|
|
|
|
| |
llvm-svn: 331653
|
|
|
|
| |
llvm-svn: 320404
|
|
|
|
|
|
|
|
| |
It used to return the actual field value from the instruction descriptor.
There is no reason for that, that value is not interesting in any way and
the specifics of its encoding in the descriptor should not be exposed.
llvm-svn: 313257
|
|
|
|
|
|
| |
warnings; other minor fixes (NFC).
llvm-svn: 309746
|
|
|
|
|
|
| |
Patch by Colin LeMahieu.
llvm-svn: 301956
|
|
|
|
| |
llvm-svn: 301953
|
|
|
|
|
|
| |
Patch by Colin LeMahieu.
llvm-svn: 301952
|
|
|
|
|
|
| |
Patch by Colin LeMahieu.
llvm-svn: 301945
|
|
|
|
|
|
|
|
| |
A .cur instruction can be identified by checking isCVINew() && mayLoad().
Patch by Colin LeMahieu.
llvm-svn: 301829
|
|
|
|
|
|
| |
Patch by Colin LeMahieu.
llvm-svn: 301823
|
|
|
|
| |
llvm-svn: 294753
|
|
|
|
|
|
| |
Reinstate r294256 with a fix.
llvm-svn: 294269
|
|
|
|
|
|
|
| |
This reverts commit r294256. It seems to be causing more problems instead
of solving them.
llvm-svn: 294259
|
|
|
|
| |
llvm-svn: 294256
|
|
|
|
|
|
|
|
|
|
| |
Changes include:
- Updates to the instruction descriptor flags.
- Improvements to the packet shuffler and checker.
- Updates to the handling of certain relocations.
- Better handling of duplex instructions.
llvm-svn: 294226
|
|
|
|
|
|
| |
Patch by Colin LeMahieu.
llvm-svn: 293933
|
|
|
|
|
|
| |
Patch by Colin LeMahieu.
llvm-svn: 293929
|
|
|
|
| |
llvm-svn: 293894
|
|
|
|
|
|
| |
restriction rather than implying it from TypeJR.
llvm-svn: 283665
|
|
|
|
| |
llvm-svn: 283514
|
|
|
|
| |
llvm-svn: 283018
|
|
|
|
|
|
| |
Patch by Colin LeMahieu.
llvm-svn: 267897
|
|
|
|
| |
llvm-svn: 263980
|
|
|
|
|
|
| |
not the integrated assembler.
llvm-svn: 262400
|
|
|
|
|
|
| |
variants since they're usually in range.
llvm-svn: 262258
|
|
|
|
| |
llvm-svn: 262238
|
|
|
|
| |
llvm-svn: 261133
|
|
|
|
| |
llvm-svn: 261077
|
|
|
|
|
|
|
|
|
|
|
|
| |
23-bit 4-byte aligned relocation to be a valid instruction encoding.
The usual way to get a 32-bit relocation is to use a constant extender which doubles the size of the instruction, 4 bytes to 8 bytes.
Another way is to put a .word32 and mix code and data within a function. The disadvantage is it's not a valid instruction encoding and jumping over it causes prefetch stalls inside the hardware.
This relocation packs a 23-bit value in to an "r0 = add(rX, #a)" instruction by overwriting the source register bits. Since r0 is the return value register, if this instruction is placed after a function call which return void, r0 will be filled with an undefined value, the prefetch won't be confused, and the callee can access the constant value by way of the link register.
llvm-svn: 261006
|
|
|
|
|
|
|
|
| |
Once a pointer is turned into a reference it cannot be nullptr, clang
rightfully warns about this assert being a tautology. Put the assert
before the reference is created.
llvm-svn: 260949
|
|
|
|
| |
llvm-svn: 260903
|
|
|
|
|
|
| |
simplify handling and allow flags on the expression.
llvm-svn: 260902
|
|
|
|
| |
llvm-svn: 254872
|
|
|
|
| |
llvm-svn: 253056
|
|
|
|
| |
llvm-svn: 253019
|
|
|
|
|
|
| |
Found by leaksanitizer.
llvm-svn: 252931
|
|
|
|
| |
llvm-svn: 252555
|
|
|
|
|
|
| |
parsing tests. General updating of the code emission.
llvm-svn: 252443
|
|
|
|
|
|
| |
Apparently, the style needs to be agreed upon first.
llvm-svn: 240390
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The patch is generated using this command:
tools/clang/tools/extra/clang-tidy/tool/run-clang-tidy.py -fix \
-checks=-*,llvm-namespace-comment -header-filter='llvm/.*|clang/.*' \
llvm/lib/
Thanks to Eugene Kosov for the original patch!
llvm-svn: 240137
|
|
|
|
|
|
| |
shows correct ELF symbol.
llvm-svn: 239876
|
|
|
|
| |
llvm-svn: 239161
|
|
|
|
| |
llvm-svn: 239102
|
|
|
|
|
|
| |
compress commonly used pairs of instructions in order to reduce code size. The test case duplex.ll normally would be 8 bytes, assign register to 0 and jump to link register. After duplexing this is only 4 bytes. This also tests the HexagonMCShuffler code path which is used to make sure duplexed instructions still follow slot requirements.
llvm-svn: 239095
|
|
|
|
| |
llvm-svn: 238692
|
|
|
|
| |
llvm-svn: 238660
|
|
|
|
|
|
| |
at a time which is the semantic unit for Hexagon. Fixing tests to use the new format. Disabling tests in the direct object emission path for a followup patch.
llvm-svn: 238556
|
|
|
|
|
|
| |
MCOperand::Create*() methods renamed to MCOperand::create*().
llvm-svn: 237275
|