summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/SystemZ/SystemZSelectionDAGInfo.h
Commit message (Collapse)AuthorAgeFilesLines
* Canonicalize header guards into a common format.Benjamin Kramer2014-08-131-2/+2
| | | | | | | | | | Add header guards to files that were missing guards. Remove #endif comments as they don't seem common in LLVM (we can easily add them back if we decide they're useful) Changes made by clang-tidy with minor tweaks. llvm-svn: 215558
* Have SystemZSelectionDAGInfo constructor take a DataLayout ratherEric Christopher2014-06-271-1/+1
| | | | | | | than a target machine since it doesn't need anything past the DataLayout. llvm-svn: 211870
* [SystemZ] Remove "virtual" from override methodsRichard Sandiford2014-03-061-12/+10
| | | | | | | Also fix a couple of cases where "override" was missing. No behavioural change intended. llvm-svn: 203110
* [SystemZ] Update namespace formatting to match current guidelinesRichard Sandiford2014-03-061-1/+1
| | | | | | No functional change intended. llvm-svn: 203103
* Switch all uses of LLVM_OVERRIDE to just use 'override' directly.Craig Topper2014-03-021-10/+9
| | | | llvm-svn: 202621
* [SystemZ] Use SRST to optimize memchrRichard Sandiford2013-08-201-0/+5
| | | | | | | | | | | | | | | | | | | SystemZTargetLowering::emitStringWrapper() previously loaded the character into R0 before the loop and made R0 live on entry. I'd forgotten that allocatable registers weren't allowed to be live across blocks at this stage, and it confused LiveVariables enough to cause a miscompilation of f3 in memchr-02.ll. This patch instead loads R0 in the loop and leaves LICM to hoist it after RA. This is actually what I'd tried originally, but I went for the manual optimisation after noticing that R0 often wasn't being hoisted. This bug forced me to go back and look at why, now fixed as r188774. We should also try to optimize null checks so that they test the CC result of the SRST directly. The select between null and the SRST GPR result could then usually be deleted as dead. llvm-svn: 188779
* [SystemZ] Use SRST to implement strlen and strnlenRichard Sandiford2013-08-161-0/+10
| | | | | | It would also make sense to use it for memchr; I'm working on that now. llvm-svn: 188547
* [SystemZ] Use MVST to implement strcpy and stpcpyRichard Sandiford2013-08-161-0/+7
| | | | llvm-svn: 188546
* [SystemZ] Use CLST to implement strcmpRichard Sandiford2013-08-161-0/+6
| | | | llvm-svn: 188544
* [SystemZ] Use CLC and IPM to implement memcmpRichard Sandiford2013-08-121-1/+7
| | | | | | | For now this is restricted to fixed-length comparisons with a length in the range [1, 256], as for memcpy() and MVC. llvm-svn: 188163
* [SystemZ] Use "STC;MVC" for memsetRichard Sandiford2013-07-091-0/+6
| | | | | | | | | | | | Use "STC;MVC" for memsets that are too big for two STCs or MV...Is yet small enough for a single MVC. As with memcpy, I'm leaving longer cases till later. The number of tests might seem excessive, but f33 & f34 from memset-04.ll failed the first cut because I'd not added the "?:" on the calculation of Size1. llvm-svn: 185918
* [SystemZ] Use MVC for memcpyRichard Sandiford2013-07-081-0/+40
| | | | | | | Use MVC for memcpy in cases where a single MVC is enough. Using MVC is a win for longer copies too, but I'll leave that for later. llvm-svn: 185802
* Remove the SystemZ backend.Dan Gohman2011-10-241-31/+0
| | | | llvm-svn: 142878
* Implement a bunch more TargetSelectionDAGInfo infrastructure.Dan Gohman2010-05-111-1/+3
| | | | | | | | Move EmitTargetCodeForMemcpy, EmitTargetCodeForMemset, and EmitTargetCodeForMemmove out of TargetLowering and into SelectionDAGInfo to exercise this. llvm-svn: 103481
* Add skeleton target-specific SelectionDAGInfo files.Dan Gohman2010-04-161-0/+29
llvm-svn: 101564
OpenPOWER on IntegriCloud