OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [gcc/] [testsuite/] [gcc.dg/] [graphite/] [scop-15.c] - Blame information for rev 749

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 689 jeremybenn
#  define EXTERN(type, array)  extern type array[]
2
typedef unsigned char  uch;
3
typedef unsigned short ush;
4
EXTERN(uch, window);
5
EXTERN(ush, prev);
6
#ifndef WSIZE
7
#  define WSIZE 0x8000
8
#endif                
9
#define MIN_MATCH  3
10
#define MAX_MATCH  258
11
#define MIN_LOOKAHEAD (MAX_MATCH+MIN_MATCH+1)
12
#define MAX_DIST  (WSIZE-MIN_LOOKAHEAD)
13
#define near
14
typedef unsigned IPos;
15
unsigned near max_chain_length;
16
extern unsigned near strstart;
17
unsigned int near prev_length;
18
#define NIL 0
19
unsigned near good_match;
20
int near nice_match;
21
#define WMASK     (WSIZE-1)
22
int longest_match(IPos cur_match)
23
{
24
    unsigned chain_length = max_chain_length;
25
    register uch *scan = window + strstart;
26
    register uch *match;
27
    register int len;
28
    int best_len = prev_length;
29
    IPos limit = strstart > (IPos)MAX_DIST ? strstart - (IPos)MAX_DIST : NIL;
30
    register uch *strend = window + strstart + MAX_MATCH;
31
    register uch scan_end   = scan[best_len];
32
    if (prev_length >= good_match) {
33
    }
34
    do {
35
        if (match[best_len]   != scan_end  ||
36
            *++match          != scan[1])      continue;
37
        do {
38
        } while (*++scan == *++match && *++scan == *++match &&
39
                 scan < strend);
40
        len = MAX_MATCH - (int)(strend - scan);
41
        if (len > best_len) {
42
            best_len = len;
43
            if (len >= nice_match) break;
44
        }
45
    } while ((cur_match = prev[cur_match & WMASK]) > limit
46
             && --chain_length != 0);
47
    return best_len;
48
}
49
 
50
/* { dg-final { scan-tree-dump-times "number of SCoPs: 0" 1 "graphite"} } */
51
/* { dg-final { cleanup-tree-dump "graphite" } } */

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.