DE69731574T2 - Kompiliergerät und -verfahren - Google Patents

Kompiliergerät und -verfahren Download PDF

Info

Publication number
DE69731574T2
DE69731574T2 DE69731574T DE69731574T DE69731574T2 DE 69731574 T2 DE69731574 T2 DE 69731574T2 DE 69731574 T DE69731574 T DE 69731574T DE 69731574 T DE69731574 T DE 69731574T DE 69731574 T2 DE69731574 T2 DE 69731574T2
Authority
DE
Germany
Prior art keywords
mask
masking
value
register
code
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE69731574T
Other languages
English (en)
Other versions
DE69731574D1 (de
Inventor
Saori Minato-ku Nakamura
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Renesas Electronics Corp
Original Assignee
NEC Electronics Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Electronics Corp filed Critical NEC Electronics Corp
Publication of DE69731574D1 publication Critical patent/DE69731574D1/de
Application granted granted Critical
Publication of DE69731574T2 publication Critical patent/DE69731574T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/447Target code generation

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Devices For Executing Special Programs (AREA)

Description

  • 1. Gebiet der Erfindung
  • Die vorliegende Erfindung betrifft eine Kompiliervorrichtung, die ein Quellprogramm kompiliert und ein Objektprogramm erzeugt, und insbesondere eine Kompiliervorrichtung und einen Kompilierer, die ein Quellprogramm kompilieren, das dann, wenn es kompiliert ist, mehrere bestimmte Maskierungsbefehle erzeugt, um ein Objektprogramm zu erzeugen, dessen Ausführungswirkungsgrad verbessert ist und das eine geringe Größe besitzt.
  • 2. Beschreibung der verwandten Technik
  • Durch Erzeugen eines Objektprogramms, das den Datenraum verwendet, der in einem Register zur Verfügung steht, kann ein Kompilierer den Ausführungswirkungsgrad dieses Objektprogramms verbessern und außerdem die Codegröße verringern.
  • In der gegenwärtigen Kompilierumgebung gibt es jedoch Fälle, bei denen die durch eine Programmiersprache vorgeschriebene Datenbreite kleiner ist als die Breite eines Hardwareregisters. Wenn ein Quellprogramm, das in einer derartigen Programmiersprache geschrieben ist, eine Variable des Kurzdatentyps verwendet, ist es erforderlich, dass ein Kompilierer in dem Objektprogramm Operationen einsetzt, die über die Datenbreite des Registers hinausgehende Bits ungültig macht. Dabei setzt ein herkömmlicher Kompilierer alle über die Datenbreite des Registers hinausgehende Bits auf null, indem Bitkonjunktionsbefehle (die nachfolgend als Maskierungsbefehle bezeichnet werden) erzeugt werden, bei denen ein Wert (der nachfolgend als Maskierungswert bezeichnet wird) verwendet wird, bei dem bestimmte Bits alle eins sind und bei dem alle Bits, die von den bestimmten Bits eines Wertes (der ein Objekt einer arithmetischen Operation wird) verschieden sind, auf null gesetzt werden.
  • Es ist dabei einfach vorhersehbar, dass in Abhängigkeit von der Hardware, auf der das Objektprogramm läuft, und der Sprache des Quellprogramms mehrere Maskierungswerte und Maskierungsbefehle in dem erzeugten Objektprogramm auftreten.
  • In dem oben erwähnten herkömmlichen Kompilierer muss jedoch dann, wenn ein Quellprogramm, das in der oben beschriebenen Weise mehrere Maskierungswerte und Maskierungsbefehle erzeugt, kompiliert wird, ein Befehl eingesetzt werden, um jedes Mal dann, wenn ein Maskierungswert erscheint, einen Maskierungswert in einem Register zu setzen. Deswegen besteht bei einer Funktion, deren Gesamtgröße gering ist, das Problem, dass das Einsetzen und das Ausführen dieses Befehls in die Verwaltungszeit gelegt wird, um die Berechnungen auszuführen, sowie das Problem, dass es Fälle gibt, bei denen der Ausführungswirkungsgrad des Objektprogramms verringert ist.
  • Aus dem Patent EP-A-0 428 084 sind ein Verfahren und eine Vorrichtung zum Kompilieren von Computerprogrammen mit einer Inter-Prozedur-Registerzuweisung bekannt, die Optimierungstechniken implementieren, um die Verwendung von begrenzten Registerbetriebsmitteln in einem Computerprozessor zu optimieren. Die erste Optimierungstechnik, die als eine Inter-Prozedur-Unterstützung globaler Variablen bezeichnet wird, ermöglicht, dass auf globale Variable eines Programms in gemeinsamen Registern während mehrerer Prozeduren zugegriffen werden kann. Insbesondere kann ein einzelnes gemeinsames Register für unterschiedliche globale Variable in verschiedenen Bereichen eines Programmzellengraphen verwendet werden. Das wird realisiert, indem als Webs bezeichnete Untergraphen des Programmzellengraphen identifiziert werden, in denen die Variable verwendet wird. Die zweite Optimierungstechnik, die als Spillcode-Bewegung bezeichnet wird, beinhaltet die Identifizierung von Bereichen des Zellengraphen, die als Cluster bezeichnet werden, die das Erreichen von Spillbefehlen an Prozeduren erleichtern, die verhältnismäßig weniger häufig ausgeführt werden. Das verringert den Overhead der Registersicherung und Wiederherstellung, der für Prozeduraufrufe ausgeführt werden müssen.
  • In "Improved bit string manipulation in a risk processor", IBM Technisches Offenbarungsbulletin, US, IBM OORP., New York, Bd. 32, Nr. 8a, 01.01.1990, S. 406, XP000082855, ISSN: 0018-8689 sind neue Befehle für RISC Prozessoren offenbart. Diese Befehle lauten "mask generate" (maskg) und "mask insert from register" (maskir) und sind Bitstring-Manipulationsbefehle, die bei der Unterstützung von Situationen helfen, bei denen der Anfang und das Ende von Strings während der Laufzeit berechnet werden müssen. Der Befehl "maskir" ist durch drei Registerfelder definiert. Die Inhalte des ersten Registers werden in die Inhalte des zweiten Registers unter der Steuerung der Maske, die in dem dritten Register enthalten ist, eingefügt. Die Ergebnisse dieser Operation werden in dem Register abgelegt, das durch das zweite Registerfeld definiert ist. Wenn die Maske berechnet worden ist, kann "end" des Befehls "maskir" verwendet werden, um die Maskierungs- oder Einfügungsfunktionen auszuführen. Dadurch schafft der Befehl einen RISC-Prozessor mit der Fähigkeit der verbesserten Bitstring-Manipulation bei einem lediglich moderaten Anwachsen der Hardware gegenüber den Anforderungen vorhandener Befehle.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Die vorliegende Erfindung wurde gemacht, um das oben beschriebene Problem zu lösen und schafft eine Kompiliervorrichtung, ein Kompilierverfahren und ein computerlesbares Medium, das einen Kompilierer speichert, die in den Ansprüchen 1, 4 bzw. 7 definiert sind.
  • Gemäß einem Aspekt der vorliegenden Erfindung wird ferner ein Objektprogramm erzeugt, dessen Größe gering ist, durch Erfassen eines bestimmten Registers und Minimieren der Erzeugung von Befehlen, um einen Maskierungswert in dem Register zu setzen, wobei eine explizite Angabe, die durch den Anwender gegeben wird, zu dem Zeitpunkt der Kompilierung erfolgt, wenn vorhergesagt werden kann, dass mehrere gleiche Maskierungswerte verwendet werden.
  • Eine erste Kompiliervorrichtung gemäß einem Aspekt der vorliegenden Erfindung umfasst:
    eine Codeerzeugungseinrichtung zum Eingeben eines Quellprogramms und zum Erzeugen von Code eines Objektprogramms, in dem ein im Voraus erfasstes Nur-Maskierungswert-Register in einem Maskierungsbefehl verwendet wird; und
    eine Maskierungswert-Setzbefehl-Einfügungseinrichtung zum Einfügen eines Befehls, der in dem im Voraus erfassten Nur-Maskierungswert-Register einen Maskierungswert setzt, in den durch die Codeerzeugungseinrichtung erzeugten Code.
  • In einer zweiten Kompiliervorrichtung gemäß einem weiteren Aspekt der vorliegenden Erfindung führt die Codeerzeugungseinrichtung in der ersten Kompiliervorrichtung eine Syntaxanalyse und eine Optimierungsverarbeitung aus.
  • In einer dritten Kompiliervorrichtung gemäß einem weiteren Aspekt der vorliegenden Erfindung erzeugt die Codeerzeugungseinrichtung in der ersten Kompiliervor richtung in von dem Maskierungsbefehl verschiedenen Befehlen Code, in dem variable Daten und konstante Daten Registern zugewiesen sind, die von dem im Voraus erfassten Nur-Maskierungswert-Register verschieden sind.
  • In einer vierten Kompiliervorrichtung gemäß einem weiteren Aspekt der vorliegenden Erfindung führt die Codeerzeugungseinrichtung in der dritten Kompiliervorrichtung eine Syntaxanalyse und eine Optimierungsverarbeitung aus.
  • Eine fünfte Kompiliervorrichtung gemäß einem weiteren Aspekt der vorliegenden Erfindung umfasst:
    eine Nur-Maskierungswert-Register-Erfassungseinrichtung zum Erfassen eines bestimmten Nur-Maskierungswert-Registers für die Verwendung in einem Maskierungsbefehl;
    eine Codeerzeugungseinrichtung zum Eingeben eines Quellprogramms und zum Erzeugen von Code eines Objektprogramms, in dem das Nur-Maskierungswert-Register, das von der Nur-Maskierungswert-Register-Erfassungseinrichtung erfasst wird, in dem Maskierungsbefehl verwendet wird; und
    eine Maskierungswert-Setzbefehl-Einfügungseinrichtung zum Einfügen eines Befehls, der in dem von der Nur-Maskierungswert-Register-Erfassungseinrichtung erfassten Nur-Maskierungswert-Register einen Maskierungswert setzt, in den durch die Codeerzeugungseinrichtung erzeugten Code.
  • In einer sechsten Kompiliervorrichtung gemäß einem weiteren Aspekt der vorliegenden Erfindung führt die Codeerzeugungseinrichtung in der fünften Kompiliervorrichtung eine Syntaxanalyse und eine Optimierungsverarbeitung aus.
  • In einer siebten Kompiliervorrichtung gemäß einem weiteren Aspekt der vorliegenden Erfindung erzeugt die Codeerzeugungseinrichtung in von dem Maskierungsbefehl verschiedenen Befehlen Code, in dem variable Daten und konstante Daten Registern zugewiesen sind, die von dem durch die Nur-Maskierungswert-Register-Erfassungseinrichtung erfassten Nur-Maskierungswert-Register verschieden sind.
  • In einer achten Kompiliervorrichtung gemäß einem weiteren Aspekt der vorliegenden Erfindung führt die Codeerzeugungseinrichtung in der siebten Kompiliervorrichtung eine Syntaxanalyse und eine Optimierungsverarbeitung aus.
  • Eine neunte Kompiliervorrichtung gemäß einem weiteren Aspekt der vorliegenden Erfindung umfasst:
    eine Nur-Maskierungswert-Register-Erfassungseinrichtung zum Erfassen des das Nur-Maskierungswert-Registers zur Verwendung in einem Maskierungsbefehl, wenn die Codeerzeugungsverfahren-Auswahleinrichtung die Angabe, dass ein Nur-Maskierungswert-Register erfasst werden soll, eingibt;
    eine Codeerzeugungseinrichtung zum Eingeben eines Quellprogramms und zum Erzeugen von Code eines Objektprogramms, in dem das Nur-Maskierungswert-Register, das von der Nur-Maskierungswert-Register-Erfassungseinrichtung erfasst wird, in dem Maskierungsbefehl verwendet wird; und
    eine Maskierungswert-Setzbefehl-Einfügungseinrichtung zum Einfügen eines Befehls, der in dem von der Nur-Maskierungswert-Register-Erfassungseinrichtung erfassten Nur-Maskierungswert-Register einen Maskierungswert setzt, in den durch die Codeerzeugungseinrichtung erzeugten Code.
  • In einer zehnten Kompiliervorrichtung gemäß einem weiteren Aspekt der vorliegenden Erfindung führt die Codeerzeugungseinrichtung in der neunten Kompiliervorrichtung eine Syntaxanalyse und eine Optimierungsverarbeitung aus.
  • In einer elften Kompiliervorrichtung gemäß einem weiteren Aspekt der vorliegenden Erfindung erzeugt die Codeerzeugungseinrichtung der neunten Kompiliervorrichtung in von dem Maskierungsbefehl verschiedenen Befehlen Code, in dem variable Daten und konstante Daten Registern zugewiesen sind, die von dem durch die Nur-Maskierungswert-Register-Erfassungseinrichtung erfassten Nur-Maskierungswert-Register verschieden sind.
  • In einer zwölften Kompiliervorrichtung gemäß einem weiteren Aspekt der vorliegenden Erfindung führt die Codeerzeugungseinrichtung in der elften Kompiliervorrichtung eine Syntaxanalyse und eine Optimierungsverarbeitung aus.
  • Ein erstes computerimplementiertes Verfahren zum Kompilieren gemäß einem Aspekt der vorliegenden Erfindung umfasst:
    einen ersten Schritt des Eingebens eines Quellprogramms;
    einen zweiten Schritt des Erzeugens von Code eines Objektprogramms, wobei ein im Voraus erfasstes Nur-Maskierungswert-Register in einem Maskierungsbefehl verwendet wird; und
    einen dritten Schritt des Einfügens eines Befehls, der einen Maskierungswert in dem im Voraus erfassten Nur-Maskierungswert-Register setzt, in den im zweiten Schritt erzeugten Code.
  • In einem zweiten Verfahren zum Kompilieren gemäß einem weiteren Aspekt der vorliegenden Erfindung umfasst das erste Verfahren zum Kompilieren ferner den folgenden Schritt:
    Ausführen einer Syntaxanalyse und einer Optimierungsverarbeitung.
  • In einem dritten Verfahren zum Kompilieren gemäß einem weiteren Aspekt der vorliegenden Erfindung enthält der zweite Schritt von dem ersten Verfahren zum Kompilieren ferner den Schritt des Erzeugens von Code in von Maskierungsbefehlen verschiedenen Befehlen, in dem variable Daten und konstante Daten Registern zugewiesen sind, die von dem durch die Nur-Maskierungswert-Register-Erfassungseinrichtung erfassten Nur-Maskierungswert-Register verschieden sind.
  • In einem vierten Verfahren zum Kompilieren gemäß einem weiteren Aspekt der vorliegenden Erfindung umfasst das dritte Verfahren zum Kompilieren ferner den folgenden Schritt:
    Ausführen einer Syntaxanalyse und einer Optimierungsverarbeitung.
  • Ein fünftes computerimplementiertes Verfahren zum Kompilieren gemäß einem Aspekt der vorliegenden Erfindung umfasst:
    einen ersten Schritt des Erfassens eines bestimmten Nur-Maskierungswert-Registers für die Verwendung in einem Maskierungsbefehl;
    einen zweiten Schritt des Eingebens eines Quellprogramms;
    einen dritten Schritt des Erzeugens von Code eines Objektprogramms, wobei das durch den ersten Schritt erfasste Nur-Maskierungswert-Register in dem Maskierungsbefehl verwendet wird; und
    einen vierten Schritt des Einfügens eines Befehls, der einen Maskierungswert in dem in dem ersten Schritt erfassten Nur-Maskierungswert-Register setzt, in den im dritten Schritt erzeugten Code.
  • In einem sechsten Verfahren zum Kompilieren gemäß einem weiteren Aspekt der vorliegenden Erfindung umfasst das fünfte Verfahren zum Kompilieren ferner den folgenden Schritt:
    Ausführen einer Syntaxanalyse und einer Optimierungsverarbeitung.
  • In einem siebten Verfahren zum Kompilieren gemäß einem weiteren Aspekt der vorliegenden Erfindung umfasst der dritte Schritt in dem fünften Verfahren zum Kompilieren ferner den Schritt des Erzeugens von Code in von dem Maskierungsbefehl verschiedenen Befehlen, in dem variable Daten und konstante Daten Registern zugewiesen sind, die von dem im ersten Schritt erfassten Nur-Maskierungswert-Register verschieden sind.
  • In einem achten Verfahren zum Kompilieren gemäß einem weiteren Aspekt der vorliegenden Erfindung umfasst das siebte Verfahren zum Kompilieren ferner den folgenden Schritt:
    Ausführen einer Syntaxanalyse und einer Optimierungsverarbeitung.
  • Ein neuntes computerimplementiertes Verfahren zum Kompilieren gemäß einem Aspekt der vorliegenden Erfindung umfasst:
    einen ersten Schritt des Eingebens einer Anwenderangabe, dass das Nur-Maskierungswert-Register nur für die Verwendung in einem Maskierungsbefehl erfasst wird;
    einen zweiten Schritt des Erfassens des Nur-Maskierungswert-Registers für die Verwendung in einem Maskierungsbefehl, wenn in dem ersten Schritt die Angabe, dass ein Nur-Maskierungswert-Register erfasst werden soll, eingegeben wird;
    einen dritten Schritt des Eingebens eines Quellprogramms;
    einen vierten Schritt des Erzeugens von Code eines Objektprogramms, wobei das in dem zweiten Schritt erfasste Nur-Maskierungswert-Register in dem Maskierungsbefehl verwendet wird; und
    einen fünften Schritt des Einfügens eines Befehls, der einen Maskierungswert in dem in dem zweiten Schritt erfassten Nur-Maskierungswert-Register setzt, in den im vierten Schritt erzeugten Code.
  • In einem zehnten Verfahren zum Kompilieren gemäß einem weiteren Aspekt der vorliegenden Erfindung umfasst das neunte Verfahren zum Kompilieren ferner den folgenden Schritt:
    Ausführen einer Syntaxanalyse und einer Optimierungsverarbeitung.
  • In einem elften Verfahren zum Kompilieren gemäß einem weiteren Aspekt der vorliegenden Erfindung umfasst der vierte Schritt in dem neunten Verfahren zum Kompilieren ferner den Schritt des Erzeugens von Code in von dem Maskierungs befehl verschiedenen Befehlen, in dem variable Daten und konstante Daten Registern zugewiesen sind, die von dem im zweiten Schritt erfassten Nur-Maskierungswert-Register verschieden sind.
  • In einem zwölften Verfahren zum Kompilieren gemäß einem weiteren Aspekt der vorliegenden Erfindung umfasst das elfte Verfahren zum Kompilieren ferner den folgenden Schritt:
    Ausführen einer Syntaxanalyse und einer Optimierungsverarbeitung.
  • Ein erstes computerlesbares Medium gemäß einem Aspekt der vorliegenden Erfindung speichert ein Kompilierprogramm auf einer Datenspeichervorrichtung, wobei das Programm umfasst:
    eine erste Datenstruktur, die einen Computer dazu veranlasst, ein Quellprogramm einzugeben;
    eine zweite Datenstruktur, die einen Computer dazu veranlasst, Code eines Objektprogramms zu erzeugen, in dem ein im Voraus erfasstes Nur-Maskierungswert-Register in einem Maskierungsbefehl verwendet wird; und
    eine dritte Datenstruktur, die einen Computer dazu veranlasst, einen Befehl, der einen Maskierungswert in dem im Voraus erfassten Nur-Maskierungswert-Register setzt, in den unter Verwendung der zweiten Datenstruktur erzeugten Code einzufügen.
  • In einem zweiten computerlesbaren Medium gemäß einem weiteren Aspekt der vorliegenden Erfindung umfasst der Kompilierer in dem ersten computerlesbaren Medium ferner:
    eine Datenstruktur, die einen Computer dazu veranlasst, eine Syntaxanalyse und eine Optimierungsverarbeitung auszuführen.
  • In einem dritten computerlesbaren Medium gemäß einem weiteren Aspekt der vorliegenden Erfindung enthält die zweite Datenstruktur in dem ersten computerlesbaren Medium ferner eine Datenstruktur, die einen Computer dazu veranlasst, in von dem Maskierungsbefehl verschiedenen Befehlen Code zu erzeugen, in dem variable Daten und konstante Daten Registern zugewiesen sind, die von dem im Voraus erfassten Nur-Maskierungswert-Register verschieden sind.
  • In einem vierten computerlesbaren Medium gemäß einem weiteren Aspekt der vorliegenden Erfindung umfasst der Kompilierer in dem dritten computerlesbaren Medium ferner:
    eine Datenstruktur, die einen Computer dazu veranlasst, eine Syntaxanalyse und eine Optimierungsverarbeitung auszuführen.
  • Ein fünftes computerlesbares Medium gemäß einem weiteren Aspekt der vorliegenden Erfindung zeichnet ein Kompilierprogramm auf einer Datenspeichervorrichtung auf, wobei das Programm umfasst:
    eine erste Datenstruktur, die einen Computer dazu veranlasst, ein bestimmtes Nur-Maskierungswert-Register für die Verwendung in einem Maskierungsbefehl zu erfassen;
    eine zweite Datenstruktur, die einen Computer dazu veranlasst, ein Quellprogramm einzugeben;
    eine dritte Datenstruktur, die einen Computer dazu veranlasst, Code eines Objektprogramms zu erzeugen, in dem das unter Verwendung der ersten Datenstruktur erfasste Nur-Maskierungswert-Register in dem Maskierungsbefehl verwendet wird; und
    eine vierte Datenstruktur, die einen Computer dazu veranlasst, einen Befehl, der einen Maskierungswert in dem unter Verwendung der ersten Datenstruktur erfassten Nur-Maskierungswert-Register setzt, in den unter Verwendung der dritten Datenstruktur erzeugten Code einzufügen.
  • In einem sechsten computerlesbaren Medium gemäß einem weiteren Aspekt der vorliegenden Erfindung umfasst der Kompilierer in dem fünften computerlesbaren Medium ferner:
    eine Datenstruktur, die einen Computer dazu veranlasst, eine Syntaxanalyse und eine Optimierungsverarbeitung auszuführen.
  • In einem siebten computerlesbaren Medium gemäß einem weiteren Aspekt der vorliegenden Erfindung enthält die dritte Datenstruktur in dem fünften computerlesbaren Medium ferner eine Datenstruktur, die einen Computer dazu veranlasst, in von dem Maskierungsbefehl verschiedenen Befehlen Code zu erzeugen, in dem variable Daten und konstante Daten Registern zugewiesen sind, die von dem unter Verwendung der ersten Datenstruktur erfassten Nur-Maskierungswert-Register verschieden sind.
  • In einem achten computerlesbaren Medium gemäß einem weiteren Aspekt der vorliegenden Erfindung umfasst der Kompilierer in dem siebten computerlesbaren Medium ferner:
    eine Datenstruktur, die einen Computer dazu veranlasst, eine Syntaxanalyse und eine Optimierungsverarbeitung auszuführen.
  • Ein neuntes computerlesbares Medium gemäß einem weiteren Aspekt der vorliegenden Erfindung zeichnet ein Kompilierprogramm auf einer Datenspeichervorrichtung auf, wobei das Programm umfasst:
    eine erste Datenstruktur, die einen Computer dazu veranlasst, eine Anwenderangabe einzugeben, dass ein Nur-Maskierungswert-Register nur für die Verwendung in einem Maskierungsbefehl erfasst wird;
    eine zweite Datenstruktur, die einen Computer dazu veranlasst, das Nur-Maskierungswert-Register für eine Verwendung in einem Maskierungsbefehl zu erfassen, wenn die erste Datenstruktur angibt, dass ein Nur-Maskierungswert-Register erfasst werden soll;
    eine dritte Datenstruktur, die einen Computer dazu veranlasst, ein Quellprogramm einzugeben;
    eine vierte Datenstruktur, die einen Computer dazu veranlasst, Code eines Objektprogramms zu erzeugen, in dem das unter Verwendung der zweiten Datenstruktur erfasste Nur-Maskierungswert-Register in dem Maskierungsbefehl verwendet wird; und
    eine fünfte Datenstruktur, die einen Computer dazu veranlasst, einen Befehl, der einen Maskierungswert in dem unter Verwendung der zweiten Datenstruktur erfassten Nur-Maskierungswert-Register setzt, in den unter Verwendung der vierten Datenstruktur erzeugten Code einzufügen.
  • In einem zehnten computerlesbaren Medium gemäß einem weiteren Aspekt der vorliegenden Erfindung umfasst der Kompilierer in dem neunten computerlesbaren Medium ferner:
    eine Datenstruktur, die einen Computer dazu veranlasst, eine Syntaxanalyse und eine Optimierungsverarbeitung auszuführen.
  • In einem elften computerlesbaren Medium gemäß einem weiteren Aspekt der vorliegenden Erfindung enthält die vierte Datenstruktur in dem neunten computerlesbaren Medium ferner eine Datenstruktur, die einen Computer dazu veranlasst, in von dem Maskierungsbefehl verschiedenen Befehlen Code zu erzeugen, in dem variable Daten und konstante Daten Registern zugewiesen sind, die von dem unter Verwendung der zweiten Datenstruktur erfassten Nur-Maskierungswert-Re gister verschieden sind.
  • In einem zwölften computerlesbaren Medium gemäß einem weiteren Aspekt der vorliegenden Erfindung umfasst der Kompilierer in dem elften computerlesbaren Medium ferner:
    eine Datenstruktur, die einen Computer dazu veranlasst, eine Syntaxanalyse und eine Optimierungsverarbeitung auszuführen.
  • KURZBESCHREIBUNG DER ZEICHNUNG
  • Die vorliegende Erfindung wird aus der folgenden genauen Beschreibung besser verstanden, wenn diese in Verbindung mit der beigefügten Zeichnung gelesen wird, worin:
  • 1 ein Blockschaltplan einer Ausführungsform der vorliegenden Erfindung ist;
  • 2 ein Ablaufplan ist, der den Prozess zeigt, der in der Ausführungsform von 1 durch die Syntaxanalyseeinrichtung 111, die Optimierungseinrichtung 112, die Codeerzeugungsverfahren-Auswahleinrichtung 113, die Nur-Maskierungswert-Register-Erfassungseinrichtung 114, die Register-Zuweisungseinrichtung 115, die Codeerzeugungseinrichtung 116 und die Maskierungswert-Setzbefehl-Einfügungseinrichtung 117 ausgeführt wird; und
  • 3 eine Darstellung ist, die ein Beispiel von Codes des Objektprogramms 24 zeigt, der durch die Kompiliervorrichtung 11 in der Ausführungsform der vorliegenden Erfindung erzeugt wird.
  • GENAUE BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSFORMEN
  • Eine Ausführungsform der vorliegenden Erfindung wird nachfolgend unter Bezugnahme auf die Zeichnung genau beschrieben.
  • In 1 ist eine erste Ausführungsform der vorliegenden Erfindung so aufgebaut, dass die Kompiliervorrichtung 11 enthält: eine Syntaxanalyseeinrichtung 111, die ein Quellprogramm eingibt und daran eine Grammatikfehlerprüfung und Strukturanalyse (die nachfolgend als Syntaxanalyse bezeichnet werden) ausführt, um es in ein Zwischenformatprogramm umzusetzen, um die Löschung von redundantem Code, die Verschiebung von Code und die Ersetzung durch eine Konstante (wobei diese Operationen im Folgenden als Optimierung bezeichnet werden) in Bezug auf eine Variable auszuführen, deren Wert bei dem Kompilieren gesetzt wurde, sowie um außerdem eine Registerzuweisung auszuführen; eine Optimierungseinrichtung 112, die eine Optimierung in Bezug auf das von der Syntaxanalyseeinrichtung 111 umgesetzte Zwischenformatprogramm ausführt, um es in ein Zwischenformatprogramm mit einer besseren Leistungsfähigkeit umzusetzen; eine Codeerzeugungsverfahren-Auswahleinrichtung 113, die eine Anwenderangabe eingibt, die angibt, ob ein Teil eines Registers nur für einen bestimmten Maskierungsbefehl erfasst wird oder nicht; eine Nur-Maskierungswert-Register-Erfassungseinrichtung 114, die einen Teil eines Registers erfasst, der zum Zeitpunkt der Codeerzeugung nur für einen bestimmten Maskierungsbefehl zugewiesen sein kann; eine Registerzuweisungseinrichtung 115, die ein Register, das von dem von der Nur-Maskierungswert-Register-Erfassungseinrichtung 114 erfassten Register verschieden ist, einer Variablen oder einer Konstanten zuweist; eine Codeerzeugungseinrichtung 116, die ein Maskierungsbefehl-Register als einen Operanden in Bezug auf einen Maskierungsbefehl verwendet, der einen bestimmten Maskierungswert als Operand besitzt, und anschließend eine Codeerzeugung ausführt; und eine Maskierungswert-Setzbefehl-Einfügungseinrichtung 117, die einen Befehl einfügt, der einen Maskierungswert in dem erfassten bestimmten Register in den Kopf eines Objektprogramms speichert.
  • Die Kompiliervorrichtung 11 von 1 wird praktisch typischerweise ein digitaler Mehrzweck-Computer sein, in dem der hier beschriebene Kompilierer abläuft.
  • Die Funktionsweise der ersten Ausführungsform der vorliegenden Erfindung wird nachfolgend unter Bezugnahme auf die 1 bis 3 beschrieben.
  • Wenn die Kompiliervorrichtung 11 gestartet wird, führt die Syntaxanalyseeinrichtung 111 anfangs eine Syntaxanalyseverarbeitung an dem Quellprogramm 21 aus und setzt es in ein Zwischensprachformat um (Schritt 221).
  • Die Optimierungseinrichtung 112 führt eine Optimierungsverarbeitung an dem Zwischensprachformat aus, das von der Syntaxanalyseeinrichtung 111 umgesetzt wurde (Schritt 222).
  • Die Codeerzeugungsverfahren-Auswahleinrichtung 113 gibt eine Anwenderan gabe ein, die angibt, ob ein Teil eines Registers nur für einen bestimmten Maskierungsbefehl erfasst wird oder nicht (Schritt 223). Es wird angemerkt, dass der Prozess des Schritts 223 durch die Codeerzeugungsverfahren-Auswahleinrichtung 113 zu einem beliebigen Zeitpunkt zwischen dem Start der Kompiliervorrichtung 11 und dem Endzeitpunkt des Schritts 222 ausgeführt werden kann.
  • Wenn die Codeerzeugungsverfahren-Auswahleinrichtung 113 eine Anwenderangabe eingibt, die angibt, dass ein Teil eines Registers nur für einen bestimmten Maskierungsbefehl erfasst wird, erfasst die Nur-Maskierungswert-Register-Erfassungseinrichtung 114 einen Teil eines Registers, der für die Zuweisung für einen bestimmten Maskierungsbefehl verwendet wird, bevor die Registerzuweisung durch die Registerzuweisungseinrichtung 115 verarbeitet wird (Schritt 224). Der Maskierungswert wird als ein Wert verwendet, der zuvor durch den Kompilierer vorgeschrieben wurde, oder als ein Wert, der durch den Anwender festgelegt wurde.
  • Die Registerzuweisungseinrichtung 115 weist nach dem Ende des Schritts 224 ein Register, das von dem von der Nur-Maskierungswert-Register-Erfassungseinrichtung 114 erfassten Register verschieden ist, durch die Nur-Maskierungswert-Register-Erfassungseinrichtung 114 einer Variablen oder einer Konstanten zu (Schritt 225).
  • Die Codeerzeugungseinrichtung 116 führt eine Codeerzeugung in Bezug auf den Maskierungsbefehl unter Verwendung des oben erwähnten Maskierungswertes aus, wobei an Stelle eines Maskierungswertes das erfasste Register als ein Operand verwendet wird (Schritt 226), wobei für andere Befehle die Codeerzeugung durch ein gewöhnliches Verfahren ausgeführt wird (Schritt 228).
  • Zuletzt fügt die Maskierungswert-Setzbefehl-Einfügungseinrichtung 117 einen Befehl ein, der einen Maskierungswert für das erfasste Register in den Kopf eines erzeugten Objektprogramms, d. h. in den ersten ausgeführten Abschnitt nach dem Ende des Schritts 226 durch die Codeerzeugungseinrichtung 116 einsetzt (Schritt 227) und demzufolge wird das Objektprogramm 24 erzeugt.
  • Es wird angemerkt, dass dann, wenn im Schritt 223 die Codeerzeugungsverfahren-Auswahleinrichtung 113 eine Anwendereingabe eingibt, die angibt, dass kein Teil eines Registers nur für einen bestimmten Maskierungsbefehl erfasst wird, ein gewöhnliches Objektprogramm 24 durch den Schritt 225 der Registerzuweisungseinrichtung 115 und durch die Codeerzeugungsverarbeitung 228 erzeugt wird.
  • 3 ist eine Darstellung, die ein Beispiel des Codes des Objektprogramms 24 zeigt, der durch die Kompiliervorrichtung 11 erzeugt wurde. Es erfolgt eine Beschreibung durch das Vergleichen des Codes 31 des Objektprogramms 24 für den Fall, bei dem kein Teil eines Registers erfasst wird, mit dem Code 32 des Objektprogramms 24 für den Fall, bei dem ein Teil eines Registers nur für einen bestimmten Maskierungswert erfasst wird.
  • Bei einer Zielhardware, bei der der Code von 3 bearbeitet wird, sind die Registerbreite auf 32 Bit und ein arithmetischer Operand auf ein Register begrenzt. Die Zielhardware ist außerdem auf eine Hardware beschränkt, die das Kennzeichen besitzt, dass ein Wert oder eine Konstante in einem Speicher verwendet wird, nachdem er bzw. sie in einem Register gespeichert wurde, und dass Ladebefehle mit einer Breite von 8 Bit oder 16 Bit von einem Speicher zu einem Register vorhanden sind.
  • Die Codes 311 und 322 geben die Folge von Operationen an, wenn der Wert einer Variable a mit der Breite 8 Bit aus einem Speicher geladen wird, und die Codes 312 und 323 geben die Folge von Operationen an, wenn der Wert einer Variable b mit der Breite 16 Bit aus einem Speicher geladen wird.
  • Das Laden des Wertes der Variable a wird durch einen Befehl 3111 ausgeführt, um einen 8 Bit-Wert aus einer Speicherposition (a) in ein Register (rx) zu laden, durch einen Befehl 3112, um einen Maskierungswert (Oxff) zu speichern, um einen von einem 8 Bit-Wert verschiedenen Wert zu sperren, und durch einen Maskierungsbefehl 3113 in dem Code 311, bei dem kein Teil eines Registers nur für einen bestimmten Maskierungswert erfasst wird.
  • In dem Code 322, bei dem ein Teil eines Registers nur für einen bestimmten Maskierungswert erfasst wird, wird das Laden der Variable durch einen Befehl 3221 zum Laden eines 8 Bit-Wertes aus einer Speicherposition (a) in ein Register (rx) und durch einen Maskierungsbefehl 3222 unter Verwendung eines 8 Bit-Nur-Maskierungswert-Registers (rmask1) ausgeführt.
  • Das Laden des Wertes der Variable b wird gleichfalls durch einen Befehl 3121 zum Laden eines 16 Bit-Wertes aus einer Speicherposition (b) in ein Register (rz), durch einen Befehl zum Speichern eines Maskierungswertes (Oxffff), der einen von einem 16 Bit-Wert verschiedenen Wert sperrt, in einem Register (rs) und einen Maskierungsbefehl 3123 in dem Code ausgeführt, bei dem kein Teil eines Registers nur für einen bestimmten Maskierungswert erfasst wird.
  • In dem Code 323, bei dem ein Teil eines Registers nur für einen bestimmten Maskierungswert erfasst wird, wird das Laden der Variable durch einen Befehl 3231 zum Laden eines 16 Bit-Wertes aus einer Speicherposition von (b) in ein Register (rz) und durch einen Maskierungsbefehl 3232 unter Verwendung eines 16 Bit-Nur-Maskierungswert-Registers (rmask2) ausgeführt.
  • Außerdem wird dann, wenn ein Teil eines Registers nur für einen bestimmten Maskierungswert erfasst wird, Code 321, der einen Befehl 3211 zum Speichern des Maskierungswertes (Oxff) in dem Register (rmask1) und außerdem einen Befehl 3212 zum Speichern des Maskierungswertes (Oxffff) in dem Register (rmask2) enthält, in den Kopf eines Programms eingefügt.
  • Ein unterscheidendes Merkmal der Kompiliervorrichtung der ersten Ausführungsform der vorliegenden Erfindung besteht darin, dass die Nur-Maskierungswert-Register-Erfassungseinrichtung 114 ein einzelnes bestimmtes Register in Bezug auf einen speziellen Maskierungsbefehl erfasst; die Registerzuweisungseinrichtung 115 eine Variable und eine Konstante einem Register zuweist, das von einem Maskierungsbefehl-Register verschieden ist; und die Codeerzeugungseinrichtung 116 Code erzeugt, wobei ein Maskierungsbefehl-Register in Bezug auf einen Maskierungsbefehl unter Verwendung eines Maskierungswertes als ein Operand verwendet wird und außerdem Code durch ein gewöhnliches Verfahren in Bezug auf andere Befehle erzeugt. Schließlich fügt die Maskierungswert-Setzbefehl-Einfügungseinrichtung 117 einen Befehl, der einen Maskierungswert für ein Maskierungsbefehl-Register setzt, in den Kopf eines erzeugten Objektprogramms ein. Bei einem aus einem Quellprogramm umgesetzten Objektprogramm, bei dem vorhergesagt werden kann, dass mehrere gleiche Maskierungswerte verwendet werden, kann die Anzahl der Ausführungen von Maskierungsbefehlen verringert werden, so dass die vorteilhafte Wirkung vorhanden ist, dass ein Objektprogramm, dessen Größe gering ist, erzeugt werden kann.
  • Der Kompilierer, der eine weitere Ausführungsform der vorliegenden Erfindung darstellt, enthält: eine Syntaxanalyse-Datenstruktur, die einen Computer dazu veranlasst, ein Quellprogramm einzugeben und die Grammatikfehlerprüfung und die Strukturanalyse davon auszuführen, um es in ein Zwischenformatprogramm umzusetzen für eine Ausführung einer Optimierung und Registerzuweisung; eine Optimierung-Datenstruktur, die einen Computer dazu veranlasst, verschiedene Arten der Optimierung in Bezug auf das durch den Schritt der Syntaxanalyse umgesetzte Zwischenformatprogramm auszuführen, um es in ein Zwischenformatprogramm mit einer besseren Leistungsfähigkeit umzusetzen; eine Codeerzeugungsverfahren-Auswahl-Datenstruktur, die einen Computer dazu veranlasst, eine Anwenderangabe einzugeben, die angibt, ob ein Teil eines Registers nur für einen bestimmten Maskierungsbefehl erfasst wird oder nicht; eine Datenstruktur der Nur-Maskierungswert-Register-Erfassung, die einen Computer dazu veranlasst, einen Teil eines Registers zu erfassen, der zum Zeitpunkt der Codeerzeugung nur für einen bestimmten Maskierungsbefehl zugewiesen sein kann; eine Registerzuweisung-Datenstruktur, die einen Computer dazu veranlasst, ein Register, das von einem Register verschieden ist, das unter Verwendung der Datenstruktur der Nur-Maskierungswert-Register-Erfassung erfasst wird, einer Variable und einer Konstanten zuzuweisen; eine Codeerzeugung-Datenstruktur, die einen Computer dazu veranlasst, unter Verwendung des Maskierungsbefehl-Registers Code zu erzeugen als ein Operand in Bezug auf einen Maskierungsbefehl, wobei ein bestimmter Maskierungswert als ein Operand verwendet wird; und eine Datenstruktur der Maskierungswert-Setzbefehl-Einfügung, die einen Computer dazu veranlasst, einen Befehl, der einen Maskierungswert in dem erfassten bestimmten Register speichert, in den Kopf eines Objektprogramms einzufügen. Der Kompilierer führt die gleiche Verarbeitung wie die Kompiliervorrichtung aus, die die oben erwähnte Ausführungsform darstellt.
  • Es wird angemerkt, dass der Kompilierer in einem Speichermedium, wie etwa ein Speicher, eine Platte, eine Floppy Disk und ein CD-ROM, gespeichert sein kann.
  • Wie oben beschrieben wurde, besitzt die Kompiliervorrichtung und der Kompilierer der vorliegenden Erfindung die vorteilhafte Wirkung, dass ein Objektprogramm mit einer geringen Größe und einem besseren Ausführungswirkungsgrad erzeugt werden kann, da die Anzahl der Ausführungen von Maskierungsbefehlen für ein Objektprogramm, das aus einem Quellprogramm umgesetzt wurde, verringert werden kann, wenn vorhergesagt werden kann, dass mehrere gleiche Maskierungswerte verwendet werden.

Claims (9)

  1. Kompiliervorrichtung, die umfasst: eine Nur-Maskierungswert-Register-Erfassungseinrichtung zum Erfassen eines bestimmten Nur-Maskierungswert-Registers für die Verwendung in einem Maskierungsbefehl; eine Codeerzeugungseinrichtung zum Eingeben eines Quellprogramms und zum Erzeugen von Code eines Objektprogramms, in dem das Nur-Maskierungswert-Register, das von der Nur-Maskierungswert-Register-Erfassungseinrichtung erfasst wird, in dem Maskierungsbefehl verwendet wird; und eine Maskierungswert-Setzbefehl-Einfügungseinrichtung zum Einfügen eines Befehls, der in dem von der Nur-Maskierungswert-Register-Erfassungseinrichtung erfassten Nur-Maskierungswert-Register einen Maskierungswert setzt, in den durch die Codeerzeugungseinrichtung erzeugten Code; wobei die Codeerzeugungseinrichtung mehrere solche Maskierungsbefehle erzeugt, wobei jeder der Maskierungsbefehle das Nur-Maskierungswert-Register als Operanden bestimmt.
  2. Kompiliervorrichtung nach Anspruch 1, die ferner umfasst: eine Codeerzeugungsverfahren-Auswahleinrichtung zum Eingeben einer Anwenderangabe, dass das Nur-Maskierungswert-Register nur für die Verwendung in den mehreren Maskierungsbefehlen erfasst wird, wobei die Nur-Maskierungswert-Register-Erfassungseinrichtung das Nur-Maskierungswert-Register erfasst, wenn die Codeerzeugungsverfahren-Auswahleinrichtung die Angabe, dass ein Nur-Maskierungswert-Register erfasst werden soll, eingibt.
  3. Kompiliervorrichtung nach Anspruch 1, bei der: die Codeerzeugungseinrichtung in Befehlen, die von dem Maskierungsbefehl verschieden sind, Code erzeugt, in dem variable Daten und konstante Daten Registern zugewiesen sind, die von dem durch die Nur-Maskierungswert-Register-Erfassungseinrichtung erfassten Nur-Maskierungswert-Register verschieden sind.
  4. Computerimplementiertes Verfahren zum Kompilieren, das umfasst: einen ersten Schritt des Erfassens eines bestimmten Nur-Maskierungswert- Registers für die Verwendung in einem Maskierungsbefehl; einen zweiten Schritt des Eingebens eines Quellprogramms; einen dritten Schritt des Erzeugens von Code eines Objektprogramms, wobei das durch den ersten Schritt erfasste Nur-Maskierungswert-Register in dem Maskierungsbefehl verwendet wird; und einen vierten Schritt des Einfügens eines Befehls, der einen Maskierungswert in dem in dem ersten Schritt erfassten Nur-Maskierungswert-Register setzt, in den im dritten Schritt erzeugten Code; wobei der dritte Schritt mehrere solche Maskierungsbefehle erzeugt, wobei jeder der Maskierungsbefehle das Nur-Maskierungswert-Register als Operanden bestimmt.
  5. Computerimplementiertes Verfahren nach Anspruch 4, das ferner umfasst: einen Codeerzeugungsverfahren-Auswahlschritt zum Eingeben einer Anwenderangabe, dass das Nur-Maskierungswert-Register nur für die Verwendung in den mehreren Maskierungsbefehlen erfasst wird, und wobei der erste Schritt das Nur-Maskierungswert-Register erfasst, wenn in dem Codeerzeugungsverfahren-Auswahlschritt die Angabe, dass ein Nur-Maskierungswert-Register erfasst werden soll, eingegeben wird.
  6. Computerimplementiertes Verfahren nach Anspruch 4, bei dem: der dritte Schritt ferner den Schritt des Erzeugens von Code in von dem Maskierungsbefehl verschiedenen Befehlen umfasst, in dem variable Daten und konstante Daten Registern zugewiesen sind, die von dem durch die Nur-Maskierungswert-Register-Erfassungseinrichtung erfassten Nur-Maskierungswert-Register verschieden sind.
  7. Computerlesbares Medium, das einen Kompilierer speichert und umfasst: eine computerlesbare Datenspeichervorrichtung; ein Kompilierprogramm, das in der Vorrichtung gespeichert ist, wobei das Kompilierprogramm umfasst: eine erste Datenstruktur, die einen Computer dazu veranlasst, ein bestimmtes Nur-Maskierungswert-Register für die Verwendung in einem Maskierungsbefehl zu erfassen; eine zweite Datenstruktur, die einen Computer dazu veranlasst, ein Quellprogramm einzugeben; eine dritte Datenstruktur, die einen Computer dazu veranlasst, Code eines Objektprogramms zu erzeugen, in dem das unter Verwendung der ersten Datenstruktur erfasste Nur-Maskierungswert-Register in dem Maskierungsbefehl verwendet wird; und eine vierte Datenstruktur, die einen Computer dazu veranlasst, einen Befehl, der einen Maskierungswert in dem unter Verwendung der ersten Datenstruktur erfassten Nur-Maskierungswert-Register setzt, in den unter Verwendung der dritten Datenstruktur erzeugten Code einzufügen; wobei die dritte Datenstruktur einen Computer dazu veranlasst, mehrere solche Maskierungsbefehle zu erzeugen, wobei jeder der Maskierungsbefehle das Nur-Maskierungswert-Register als Operanden bestimmt.
  8. Computerlesbares Medium nach Anspruch 7, das ferner umfasst: eine fünfte Datenstruktur, die einen Computer dazu veranlasst, eine Anwenderangabe einzugeben, dass das Nur-Maskierungswert-Register nur für die Verwendung in den mehreren der Maskierungsbefehle verwendet wird, wobei die erste Datenstruktur einen Computer dazu veranlasst, das Nur-Maskierungswert-Register zu erfassen, wenn die fünfte Datenstruktur angibt, dass das Nur-Maskierungswert-Register erfasst werden soll.
  9. Computerimplementiertes Verfahren nach Anspruch 7, bei dem: die dritte Datenstruktur ferner eine Datenstruktur umfasst, die einen Computer dazu veranlasst, in Befehlen, die von dem Maskierungsbefehl verschieden sind, Code zu erzeugen, in dem variable Daten und konstante Daten Registern zugewiesen sind, die von dem unter Verwendung der ersten Datenstruktur erfassten Nur-Maskierungswert-Register verschieden sind.
DE69731574T 1996-02-19 1997-02-19 Kompiliergerät und -verfahren Expired - Lifetime DE69731574T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP8030914A JP2904099B2 (ja) 1996-02-19 1996-02-19 コンパイル装置およびコンパイル方法
JP3091496 1996-02-19

Publications (2)

Publication Number Publication Date
DE69731574D1 DE69731574D1 (de) 2004-12-23
DE69731574T2 true DE69731574T2 (de) 2006-03-23

Family

ID=12316975

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69731574T Expired - Lifetime DE69731574T2 (de) 1996-02-19 1997-02-19 Kompiliergerät und -verfahren

Country Status (4)

Country Link
US (1) US6256782B1 (de)
EP (1) EP0790555B1 (de)
JP (1) JP2904099B2 (de)
DE (1) DE69731574T2 (de)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7529907B2 (en) * 1998-12-16 2009-05-05 Mips Technologies, Inc. Method and apparatus for improved computer load and store operations
US8832672B2 (en) 2011-01-28 2014-09-09 International Business Machines Corporation Ensuring register availability for dynamic binary optimization
US9400650B2 (en) 2012-09-28 2016-07-26 Intel Corporation Read and write masks update instruction for vectorization of recursive computations over interdependent data
US9823924B2 (en) 2013-01-23 2017-11-21 International Business Machines Corporation Vector element rotate and insert under mask instruction
US9804840B2 (en) 2013-01-23 2017-10-31 International Business Machines Corporation Vector Galois Field Multiply Sum and Accumulate instruction
US9471308B2 (en) 2013-01-23 2016-10-18 International Business Machines Corporation Vector floating point test data class immediate instruction
US9513906B2 (en) 2013-01-23 2016-12-06 International Business Machines Corporation Vector checksum instruction
US9715385B2 (en) 2013-01-23 2017-07-25 International Business Machines Corporation Vector exception code
US9778932B2 (en) * 2013-01-23 2017-10-03 International Business Machines Corporation Vector generate mask instruction

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5021945A (en) * 1985-10-31 1991-06-04 Mcc Development, Ltd. Parallel processor system for processing natural concurrencies and method therefor
US5212778A (en) * 1988-05-27 1993-05-18 Massachusetts Institute Of Technology Message-driven processor in a concurrent computer
JPH01305434A (ja) 1988-06-02 1989-12-08 Nec Corp コンパイラのレジスタ使用方式
JPH0281230A (ja) * 1988-09-19 1990-03-22 Hitachi Ltd 構文解析および言語処理システム
US5095432A (en) * 1989-07-10 1992-03-10 Harris Corporation Data processing system implemented process and compiling technique for performing context-free parsing algorithm based on register vector grammar
US5428793A (en) 1989-11-13 1995-06-27 Hewlett-Packard Company Method and apparatus for compiling computer programs with interproceduural register allocation
US5488714A (en) * 1990-05-23 1996-01-30 Unisys Corporation Computer program analyzer for adapting computer programs to different architectures
US5717947A (en) * 1993-03-31 1998-02-10 Motorola, Inc. Data processing system and method thereof
GB9402470D0 (en) * 1994-02-09 1994-03-30 Texas Instruments Ltd Improvements in or relating to mask generation
JP3242278B2 (ja) * 1995-03-24 2001-12-25 東芝テック株式会社 画像処理装置
US5956479A (en) * 1995-11-13 1999-09-21 Object Technology Licensing Corporation Demand based generation of symbolic information
US5956511A (en) * 1996-03-29 1999-09-21 Kabushiki Kaisha Toshiba Program development support apparatus, program development support method, and storage medium therefor
US6041181A (en) * 1997-07-23 2000-03-21 International Business Machines Corporation Method of, system for, and computer program product for providing quick fusion in WHERE constructs
US6141374A (en) * 1998-10-14 2000-10-31 Lucent Technologies Inc. Method and apparatus for generating multiple matched-filter PN vectors in a CDMA demodulator

Also Published As

Publication number Publication date
EP0790555B1 (de) 2004-11-17
EP0790555A2 (de) 1997-08-20
JPH09223023A (ja) 1997-08-26
DE69731574D1 (de) 2004-12-23
JP2904099B2 (ja) 1999-06-14
US6256782B1 (en) 2001-07-03
EP0790555A3 (de) 2000-05-24

Similar Documents

Publication Publication Date Title
DE69230450T2 (de) Programmverarbeitungssystem und -verfahren
DE69232761T2 (de) Verfahren und vorrichtung zur aenderung von dynamische zuweisbaren objektcodedateien
DE69129067T2 (de) Verfahren um die skalaren datenabhängigkeiten für einen optimisationskompiler darzustellen
DE3750515T2 (de) Verfahren zur Zugriffssteuerung einer Datenbasis.
DE69918334T2 (de) Erzeugung von kompilierten programmen für interpretative laufzeitumgebungen
DE69800686T2 (de) Verfahren und Gerät für effizienten Operationen auf primären Typwerten ohne statisches Überladen
DE69221041T2 (de) Verbesserte fehleranzeige bei der ausführung von übersetztem befehlscode
DE69623146T2 (de) Verfahren und Vorrichtung zum Koordinieren der Benutzung von physikalischen Registern in einem Mikroprozessor
DE68926956T2 (de) Anordnung zur teilung eines generischen kodes für ein digitales datenverarbeitungssystem
DE69600995T2 (de) Fehlerbearbeitung in spekulativen befehlen
DE68925523T2 (de) Erzeugung eines wirksamen Kodes für einen unähnliche Registrierräume enthaltenden Computer
EP0689694B1 (de) Verfahren zur maschinellen erzeugung von nebenläufig bearbeitbaren befehlsgruppen aus einem programm für superskalare mikroprozessoren
EP0502857B1 (de) Verfahren zur dynamischen bindung von definierbaren programmelementen eines interaktiven datenverarbeitungssystems
DE69525706T2 (de) Vorrichtung und Verfahren zum Generieren des Zielsprachcodes durch Verwendung eines objektorientierten Codegenerators
DE69230707T2 (de) An das Ziel anpassbares Informationsverarbeitungssystem
DE69510572T2 (de) Verfahren und Vorrichtung zur Run-Time-Fehlerprüfung unter Verwendung dynamischer Programmmodifikation
DE69429305T2 (de) System und Verfahren für Sprachenverarbeitung
DE69229319T2 (de) System und Verfahren zur Konservierung der Unteilbarkeit eines Quellbefehls in übertragenen Programmbefehlen
DE69723180T2 (de) Herunterladen eines Interpreters in einen Drucker
DE60010420T2 (de) Automatisches Regressionstesten von Arbeitsplatz-Software
DE69622219T2 (de) Optimierungsgerät zum Entfernen von Gefahren durch Arrangierung der Befehlsreihenfolge
DE69909945T2 (de) Verfahren und Anordnung zur Korrelation von Profildaten dynamisch erzeugt durch ein optimiertes ausführbares Programm mit Quellcodeanweisungen
DE69604347T2 (de) Bestimmung der dynamischen Eigenschaften von Programmen
DE102007025397B4 (de) System mit mehreren Prozessoren und Verfahren zu seinem Betrieb
DE69703329T2 (de) Verfahren und Anordnung zur Änderung von Ergebnissen einer Computerprogrammausführungsfolge

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
R082 Change of representative

Ref document number: 790555

Country of ref document: EP

Representative=s name: BETTEN & RESCH, DE

R081 Change of applicant/patentee

Ref document number: 790555

Country of ref document: EP

Owner name: RENESAS ELECTRONICS CORPORATION, JP

Free format text: FORMER OWNER: NEC ELECTRONICS CORP., KAWASAKI, JP

Effective date: 20120828

R082 Change of representative

Ref document number: 790555

Country of ref document: EP

Representative=s name: PATENTANWAELTE BETTEN & RESCH, DE

Effective date: 20120828