Search Options

Results per page
Sort
Preferred Languages
Advance

Results 1 - 10 of 23 for logLargeCopy (0.2 sec)

  1. src/cmd/compile/internal/ssa/_gen/S390X.rules

    (Move [s] dst src mem) && s > 0 && s <= 256 && logLargeCopy(v, s) =>
    	(MVC [makeValAndOff(int32(s), 0)] dst src mem)
    (Move [s] dst src mem) && s > 256 && s <= 512 && logLargeCopy(v, s) =>
    	(MVC [makeValAndOff(int32(s)-256, 256)] dst src (MVC [makeValAndOff(256, 0)] dst src mem))
    (Move [s] dst src mem) && s > 512 && s <= 768 && logLargeCopy(v, s) =>
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Thu Oct 12 18:09:26 UTC 2023
    - 74.3K bytes
    - Viewed (0)
  2. src/cmd/compile/internal/ssa/_gen/Wasm.rules

    (Move [s] dst src mem) && s > 8 && s < 16 =>
    	(I64Store [s-8] dst (I64Load [s-8] src mem)
    		(I64Store dst (I64Load src mem) mem))
    
    // Large copying uses helper.
    (Move [s] dst src mem) && logLargeCopy(v, s) =>
    	(LoweredMove [s] dst src mem)
    
    // Lowering Zero instructions
    (Zero [0] _ mem) => mem
    (Zero [1] destptr mem) => (I64Store8 destptr (I64Const [0]) mem)
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Fri Feb 17 03:56:57 UTC 2023
    - 16.9K bytes
    - Viewed (0)
  3. src/cmd/compile/internal/ssa/_gen/LOONG64.rules

    			(MOVVstore dst (MOVVload src mem) mem)))
    
    // medium move uses a duff device
    (Move [s] {t} dst src mem)
    	&& s%8 == 0 && s >= 24 && s <= 8*128 && t.Alignment()%8 == 0
    	&& !config.noDuffDevice && logLargeCopy(v, s)  =>
    	(DUFFCOPY [16 * (128 - s/8)] dst src mem)
    // 16 and 128 are magic constants.  16 is the number of bytes to encode:
    //	MOVV	(R1), R23
    //	ADDV	$8, R1
    //	MOVV	R23, (R2)
    //	ADDV	$8, R2
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Tue Nov 21 19:26:25 UTC 2023
    - 31.8K bytes
    - Viewed (0)
  4. src/cmd/compile/internal/ssa/_gen/RISCV64.rules

    (Move [s] {t} dst src mem)
    	&& s%8 == 0 && s <= 8*128 && t.Alignment()%8 == 0
    	&& !config.noDuffDevice && logLargeCopy(v, s) =>
    	(DUFFCOPY [16 * (128 - s/8)] dst src mem)
    
    // Generic move uses a loop
    (Move [s] {t} dst src mem) && (s <= 16 || logLargeCopy(v, s)) =>
    	(LoweredMove [t.Alignment()]
    		dst
    		src
    		(ADDI <src.Type> [s-moveSize(t.Alignment(), config)] src)
    		mem)
    
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Thu Mar 07 14:57:07 UTC 2024
    - 40.3K bytes
    - Viewed (0)
  5. src/cmd/compile/internal/ssa/_gen/MIPS64.rules

    // medium move uses a duff device
    (Move [s] {t} dst src mem)
    	&& s%8 == 0 && s >= 24 && s <= 8*128 && t.Alignment()%8 == 0
    	&& !config.noDuffDevice && logLargeCopy(v, s)  =>
    	(DUFFCOPY [16 * (128 - s/8)] dst src mem)
    // 16 and 128 are magic constants.  16 is the number of bytes to encode:
    //	MOVV	(R1), R23
    //	ADDV	$8, R1
    //	MOVV	R23, (R2)
    //	ADDV	$8, R2
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Mon Jul 31 03:59:48 UTC 2023
    - 41.9K bytes
    - Viewed (0)
  6. src/cmd/compile/internal/ssa/rewrite.go

    	return isInlinableMemmove(dst, src, sz, c)
    }
    
    // logLargeCopy logs the occurrence of a large copy.
    // The best place to do this is in the rewrite rules where the size of the move is easy to find.
    // "Large" is arbitrarily chosen to be 128 bytes; this may change.
    func logLargeCopy(v *Value, s int64) bool {
    	if s < 128 {
    		return true
    	}
    	if logopt.Enabled() {
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Fri Jun 07 19:02:52 UTC 2024
    - 64.2K bytes
    - Viewed (0)
  7. src/cmd/compile/internal/ssa/_gen/PPC64.rules

    // offset is zero, any alignment can be used.
    (Move [s] dst src mem) && s > 8 && buildcfg.GOPPC64 <= 8 && logLargeCopy(v, s) =>
            (LoweredMove [s] dst src mem)
    (Move [s] dst src mem) && s > 8 && s <= 64 && buildcfg.GOPPC64 >= 9 =>
            (LoweredQuadMoveShort [s] dst src mem)
    (Move [s] dst src mem) && s > 8 && buildcfg.GOPPC64 >= 9 && logLargeCopy(v, s) =>
            (LoweredQuadMove [s] dst src mem)
    
    // Calls
    // Lowering calls
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Fri Jun 07 19:02:52 UTC 2024
    - 53.2K bytes
    - Viewed (0)
  8. src/cmd/compile/internal/ssa/rewriteS390X.go

    		v.AddArg3(dst, v0, v1)
    		return true
    	}
    	// match: (Move [s] dst src mem)
    	// cond: s > 0 && s <= 256 && logLargeCopy(v, s)
    	// result: (MVC [makeValAndOff(int32(s), 0)] dst src mem)
    	for {
    		s := auxIntToInt64(v.AuxInt)
    		dst := v_0
    		src := v_1
    		mem := v_2
    		if !(s > 0 && s <= 256 && logLargeCopy(v, s)) {
    			break
    		}
    		v.reset(OpS390XMVC)
    		v.AuxInt = valAndOffToAuxInt(makeValAndOff(int32(s), 0))
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Thu Oct 12 18:09:26 UTC 2023
    - 395.1K bytes
    - Viewed (0)
  9. src/cmd/compile/internal/ssa/_gen/MIPS.rules

    			(MOVWstore [4] dst (MOVWload [4] src mem)
    				(MOVWstore dst (MOVWload src mem) mem))))
    
    
    // large or unaligned move uses a loop
    (Move [s] {t} dst src mem)
    	&& (s > 16 && logLargeCopy(v, s) || t.Alignment()%4 != 0) =>
    	(LoweredMove [int32(t.Alignment())]
    		dst
    		src
    		(ADDconst <src.Type> src [int32(s-moveSize(t.Alignment(), config))])
    		mem)
    
    // calls
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Wed May 24 14:43:03 UTC 2023
    - 35.3K bytes
    - Viewed (0)
  10. src/cmd/compile/internal/ssa/rewriteLOONG64.go

    	// result: (DUFFCOPY [16 * (128 - s/8)] dst src mem)
    	for {
    		s := auxIntToInt64(v.AuxInt)
    		t := auxToType(v.Aux)
    		dst := v_0
    		src := v_1
    		mem := v_2
    		if !(s%8 == 0 && s >= 24 && s <= 8*128 && t.Alignment()%8 == 0 && !config.noDuffDevice && logLargeCopy(v, s)) {
    			break
    		}
    		v.reset(OpLOONG64DUFFCOPY)
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Tue Nov 21 19:26:25 UTC 2023
    - 195.8K bytes
    - Viewed (0)
Back to top