| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
| |
No tests are included just yet - this is used from the pseudo
instruction expander pass, which hasn't been pulled in-tree yet.
llvm-svn: 283316
|
|
|
|
|
|
| |
It was recently changed from 'const char*' to StringRef
llvm-svn: 283312
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary: This allows AVR to lower frames into assembly code.
Reviewers: arsenm, kparzysz
Subscribers: japaric, wdng, beanz, mgorny
Differential Revision: https://reviews.llvm.org/D25032
llvm-svn: 283311
|
|
|
|
|
|
|
| |
We have ~500 lines of subtarget feature definitions, they don't belong
in our main TableGen file.
llvm-svn: 283310
|
|
|
|
| |
llvm-svn: 283309
|
|
|
|
| |
llvm-svn: 283308
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
This adds the AVR machine code backend (`AVRAsmBackend.cpp`). This will
allow us to generate machine code from assembled AVR instructions.
Reviewers: arsenm, kparzysz
Subscribers: modocache, japaric, wdng, beanz, mgorny
Differential Revision: https://reviews.llvm.org/D25029
llvm-svn: 283297
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary: This adds the ELF32 writer for AVR.
Reviewers: kparzysz
Subscribers: beanz, mgorny
Differential Revision: https://reviews.llvm.org/D25031
llvm-svn: 282856
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
This change adds the AVR assembly instruction printer.
No tests are included in this patch. I have left them downstream so we can
add them once `llc` successfully runs (there's very few components left
to upstream until this).
Reviewers: arsenm, kparzysz
Subscribers: wdng, beanz, mgorny
Differential Revision: https://reviews.llvm.org/D25028
llvm-svn: 282854
|
|
|
|
|
|
| |
I accidentally comitted it.
llvm-svn: 282712
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary: This adds AVRISelLowering.cpp
Reviewers: kparzysz, arsenm
Subscribers: wdng, beanz, mgorny
Differential Revision: https://reviews.llvm.org/D25034
llvm-svn: 282711
|
|
|
|
|
|
| |
'BUILTIN' is clearer than 'RT' in this context.
llvm-svn: 282602
|
|
|
|
| |
llvm-svn: 282598
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
This adds the AVRMCTargetDesc file in tree. It allows creation of the
core classes used in the backend.
Reviewers: arsenm, kparzysz
Subscribers: wdng, beanz, mgorny
Differential Revision: https://reviews.llvm.org/D25023
llvm-svn: 282597
|
|
|
|
|
|
| |
It has been recently changed to also take a MCTargetOptions structure.
llvm-svn: 282594
|
|
|
|
|
|
|
|
| |
We very recently landed the code. This commit enables the parser.
It also adds a missing include to AVRAsmParser.cpp
llvm-svn: 282593
|
|
|
|
|
|
|
|
|
| |
This adds two new things:
- Operand types per fixup
- Atomic pseudo operations
llvm-svn: 282588
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The previous data layout caused issues when dealing with atomics.
Foe example, it is illegal to load a 16-bit value with less than 16-bits
of alignment.
This changes the data layout so that all types are aligned by at least
their own width.
Interestingly, this also _slightly_ decreased register pressure in some
cases.
llvm-svn: 282587
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary: This patch adds the AVRAsmParser library.
Reviewers: arsenm, kparzysz
Subscribers: wdng, beanz, mgorny, kparzysz, simoncook, jtbandes, llvm-commits
Differential Revision: https://reviews.llvm.org/D20046
llvm-svn: 282584
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary: This adds the AVRMCExpr headers and implementation.
Reviewers: arsenm, ruiu, grosbach, kparzysz
Subscribers: wdng, beanz, mgorny, kparzysz, jtbandes, llvm-commits
Differential Revision: https://reviews.llvm.org/D20503
llvm-svn: 282397
|
|
|
|
|
|
| |
It was changed recently, and was breaking compilation of the backend.
llvm-svn: 282329
|
|
|
|
| |
llvm-svn: 281535
|
|
|
|
|
|
|
| |
analyzeBranch was renamed to use lowercase first, rename
the related set to match.
llvm-svn: 281506
|
|
|
|
|
|
|
|
|
| |
The main change is to return the code size from
InsertBranch/RemoveBranch.
Patch mostly by Tim Northover
llvm-svn: 281505
|
|
|
|
|
|
|
| |
This is a mechanical change of comments in switches like fallthrough,
fall-through, or fall-thru to use the LLVM_FALLTHROUGH macro instead.
llvm-svn: 278902
|
|
|
|
|
|
| |
Differential Revision: https://reviews.llvm.org/D23450
llvm-svn: 278784
|
|
|
|
|
|
|
|
|
| |
This adds a target hook getInstSizeInBytes to TargetInstrInfo that a lot of
subclasses already implement.
Differential Revision: https://reviews.llvm.org/D22885
llvm-svn: 277126
|
|
|
|
|
|
|
| |
getFrameInfo() never returns nullptr so we should use a reference
instead of a pointer.
llvm-svn: 277017
|
|
|
|
|
|
| |
Differential Revision: https://reviews.llvm.org/D22925
llvm-svn: 276997
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary: NFC. Rename AnalyzeBranch/AnalyzeBranchPredicate to analyzeBranch/analyzeBranchPredicate to follow LLVM coding style and be consistent with TargetInstrInfo's analyzeCompare and analyzeSelect.
Reviewers: tstellarAMD, mcrosier
Subscribers: mcrosier, jholewinski, jfb, arsenm, dschuff, jyknight, dsanders, nemanjai
Differential Revision: https://reviews.llvm.org/D22409
llvm-svn: 275564
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is a mechanical change to make TargetLowering API take MachineInstr&
(instead of MachineInstr*), since the argument is expected to be a valid
MachineInstr. In one case, changed a parameter from MachineInstr* to
MachineBasicBlock::iterator, since it was used as an insertion point.
As a side effect, this removes a bunch of MachineInstr* to
MachineBasicBlock::iterator implicit conversions, a necessary step
toward fixing PR26753.
llvm-svn: 274287
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is mostly a mechanical change to make TargetInstrInfo API take
MachineInstr& (instead of MachineInstr* or MachineBasicBlock::iterator)
when the argument is expected to be a valid MachineInstr. This is a
general API improvement.
Although it would be possible to do this one function at a time, that
would demand a quadratic amount of churn since many of these functions
call each other. Instead I've done everything as a block and just
updated what was necessary.
This is mostly mechanical fixes: adding and removing `*` and `&`
operators. The only non-mechanical change is to split
ARMBaseInstrInfo::getOperandLatencyImpl out from
ARMBaseInstrInfo::getOperandLatency. Previously, the latter took a
`MachineInstr*` which it updated to the instruction bundle leader; now,
the latter calls the former either with the same `MachineInstr&` or the
bundle leader.
As a side effect, this removes a bunch of MachineInstr* to
MachineBasicBlock::iterator implicit conversions, a necessary step
toward fixing PR26753.
Note: I updated WebAssembly, Lanai, and AVR (despite being
off-by-default) since it turned out to be easy. I couldn't run tests
for AVR since llc doesn't link with it turned on.
llvm-svn: 274189
|
|
|
|
|
|
|
|
| |
This used to be free, copying and moving DebugLocs became expensive
after the metadata rewrite. Passing by reference eliminates a ton of
track/untrack operations. No functionality change intended.
llvm-svn: 272512
|
|
|
|
| |
llvm-svn: 270302
|
|
|
|
|
|
|
| |
Everything now compiles successfully, but there are still undefined
references.
llvm-svn: 270298
|
|
|
|
| |
llvm-svn: 270292
|
|
|
|
|
|
| |
Reviewed by Matt Arsenault in http://reviews.llvm.org/D16311
llvm-svn: 270171
|
|
|
|
|
|
|
|
|
|
| |
It defined the LLVM_AVR_GCC_COMPAT constant, which would enable/disable
certain GCC-specific behaviours.
There is no point conditionally turning it on/off, as it will always be
turned on, and we have to maintain both code paths anyway.
llvm-svn: 269904
|
|
|
|
| |
llvm-svn: 269901
|
|
|
|
| |
llvm-svn: 269900
|
|
|
|
| |
llvm-svn: 269895
|
|
|
|
|
|
|
|
| |
Many files include Passes.h but only a fraction needs to know about the
TargetPassConfig class. Move it into an own header. Also rename
Passes.cpp to TargetPassConfig.cpp while we are at it.
llvm-svn: 269011
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary: This adds the majority of the AVR backend.
Reviewers: hfinkel, dsanders, vkalintiris, arsenm
Subscribers: dylanmckay
Differential Revision: http://reviews.llvm.org/D17906
llvm-svn: 268722
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary: Add the AVR instruction tablegen definitions.
Reviewers: stoklund, hfinkel, dsanders, arsenm, vkalintiris
Subscribers: dylanmckay, agnat, rjordans, llvm-commits
Differential Revision: http://reviews.llvm.org/D15703
llvm-svn: 260363
|
|
|
|
|
|
|
|
| |
CodeGen/
It's a SelectionDAG thing, not a Target thing.
llvm-svn: 258939
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
This patch is provided in preparation for removing autoconf on 1/26. The proposal to remove autoconf on 1/26 was discussed on the llvm-dev thread here: http://lists.llvm.org/pipermail/llvm-dev/2016-January/093875.html
"I felt a great disturbance in the [build system], as if millions of [makefiles] suddenly cried out in terror and were suddenly silenced. I fear something [amazing] has happened."
- Obi Wan Kenobi
Reviewers: chandlerc, grosbach, bob.wilson, tstellarAMD, echristo, whitequark
Subscribers: chfast, simoncook, emaste, jholewinski, tberghammer, jfb, danalbert, srhines, arsenm, dschuff, jyknight, dsanders, joker.eph, llvm-commits
Differential Revision: http://reviews.llvm.org/D16471
llvm-svn: 258861
|
|
|
|
| |
llvm-svn: 257152
|
|
|
|
| |
llvm-svn: 257049
|
|
|
|
|
|
|
| |
This commit adds the 'AVRMachineFunctionInfo' class, which simply stores
basic properties about generated machine functions.
llvm-svn: 256213
|
|
|
|
| |
llvm-svn: 256130
|