-
Thread
Division durch 2er Potenz wird nicht schneller - warum?
>Ich verwende AVR Studio4 mit der Optimierungsstufe Os. Ich vermute mal, dass Du dich auf avr-gcc beziehst -- dann wäre der Bereich gcc das richtige Unter-Forum, da gibt es eher Experten... Und Option 0s, das ist doch bei gcc wohl Optimierung auf kompakten Code, wenn ich mich recht erinnere.
stört und -O1 oder -O2 in den Speicher reinpasst, dann kann man das auch verwenden. Mit #pragma GCC optimize ("O2") ... #pragma GCC reset_options lässt sich das ab GCC 4.4 auch innerhalb vom Code umstellen.
-
Thread
Welches Programmiergerät für AVR und AVR32
sogar freie Software. Die Linux-Unterstützung für die AVRs ist exzellent: Eclipse + AVR-Plugin + avr-gcc + avrdude alles freie Software und alles aufeinander abgestimmt, kein umständliches Gefrickel, keine Einschränkungen, installieren und läuft out of the box.
kostenlosen Versionen, wo nur die höheren > Optimierungsstufen abgeschaltet sind. Ja, komplett ohne Optimierung, also ungefähr das Äquivalent von gcc -O0 wo der Code doppelt so groß und halb so schnell wird weil zwischen jeder zweiten Instruktion erst nochmal ne komplett unnötige Runde Spilling und Filling
-
Thread
Compilersprache C -- Optimierung
Du in C so schreibst wie man in Pascal schreibt, dann hat der Compiler große Freiheiten für die Optimierung.
is the root of all evil. Vorzeitige Optimierung ist die Wurzel allen Übels.
-
Thread
Komplizierte 32-Bit-Rechnung möglichst effizient
ist und ich >eine Vereinfachung übersehen habe. https://www.mikrocontroller.net/articles/AVR-GCC-Codeoptimierung#Prinzipien_der_Optimierung
definieren, wenn es keine zusätzliche Einschränkung der Zahlenbereiche der Variablen gibt. Aber der GCC muss fast alles als 32 Bit rechnen, wo eine handoptimiere ASM-Variante deutlich sparen kann. Aber dennoch gilt mein Link oben zum Thema Optimierung! Wenn es auch so ausreichend schnell ist, so what!
-
Thread
static volatile variable in einer Funktion
or reordered except as permitted by the rules for evaluating expressions. [/pre] noch einige Optimierungen offen lässt.
Arduino Fanboy D. schrieb im Beitrag #6232464: > mh schrieb: >> noch einige Optimierungen offen lässt. > Ja, z.B. die "Short circuit evaluation" Die ist keine Optimierung, sondern in C vorgeschriebenes Verhalten. Das heißt, dass bei [C] int i = 0; volatile int j = 3; if (i
-
Thread
Wie erzeuge ich ein Listing mit AVR-GCC?
Versuch mal das hier. Das ist über DJGPP (gcc für DOS), sollte aber eigentlich mit allen gcc Versionen funktionieren (wenn es denn funktioniert, probiert hab ichs nicht:): http://www.delorie.com/djgpp/v2faq/faq8_20.html
sein dass die Assemblerzeilen und der C Code durcheinandergeworfen werden, das passiert scheinbar bei gcc, wenn man Debuginformationen und Optimierungen eingeschaltet hat (viele Compiler lassen es auch gar nicht erst zu, Code zu optimieren und mit Debuginfos zu versehen). Falls du -O, -O3 oder ähnlich
-
Thread
Wert an Variable per Referenz übergeben
Ein paar Richtlinien zu avr-gcc: http://www.mikrocontroller.net/articles/AVR-GCC-Codeoptimierung
Funktion in einen Pointer zu laden und über diesen Pointer zuzugreifen. Ein globaler Pointer als "Optimierung" für Zugriff auf die immer gleiche bekannte Variable ist wohl immer Unfug.
-
Thread
Was kostet eine Funktion?
zerlegt in Scheibchen mit 3 bis 5 Zeilen :-) ...und ich versuche gerade mit vorzustellen, wie GCC aussehen würde. Bei 4000000 Zeilen Code wäre man bei 100000 Funkionen oder mehr. Dabei ist schon ein Faktor von 1/4 eingerechnet (Quelle besteht zu 75% aus Kommentaren, also 1000000 LOC netto) und
> zu machen das Verhalten des Programmes stark verändert. > Ne, eben gerade nicht. Sämtliche Optimierungen, die der Compiler > vornehmen darf, dürfen das Verhalten des Programmes _nicht_ verändern. Eine Ausnahme: Die Laufzeit darf sich ändern. Fefes Papier führt mit Recht auf, dass die Effizienz
-
Thread
char Array für ultoa()
puts(ptr); puts(0); puts(NULL); } [/c] Kein Abbruch: [pre] stefan@stefanspc:~$ gcc -std=c99 test.c stefan@stefanspc:~$ [/pre] Zweiter Versuch: [pre] stefan@stefanspc:~$ gcc -std=c99 -Wall test.c test.c: In function ‘main’: test.c:7:4: warning: null argument where non-null
Hier: https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html mal die Option -fdelete-null-pointer-checks (besser mehrfach) studieren (die Auswirkungen sind - bzw. waren zumindest mir - nicht auf den ersten Blick
-
Thread
STM32F4Discovery mit CooCox :: GPIO,SDIO,Timer,SoftTimer,USART,printf
bösewicht schrieb im Beitrag #2928427: > Aber, mein gcc scheint nichtmehr zu stimmen!Habe ich wohl selbst > verbockt (wie weiß ich nicht); > Welchen nimmst Du, Thomas Winkler ? \arm-none-eabi-gcc-4_6
Welche Versionen von CoIDE und GCC verwendest Du? Ich empfehle CoIDE 1.5.2 und die letzte GCC 4.6 Version (gcc-arm-none-eabi-4_6-2012q4-20121016) Vielleicht findest Du hier eine Lösung: http://www.coocox.org/forum/topic.php?id
-
Thread
STM32F303: Empfehlenswerte Compilerargumente
durchgesetzt hat. Die m-Optionen sind ja selbsterklärend - die erstere berücksichtigt bei den Optimierungen, daß verteilte Datenzugriffe aufs Flash langsamer sein können.
https://stackoverflow.com/questions/4274804/query-on-ffunction-section-fdata-sections-options-of-gcc
-
Thread
Welche Programmiersprache für numerische Rechnungen Gesperrt
nehmen das, was sie gut verstehen und am Cluster supported wird. Soweit ich informiert bin, ist der GCC am ARM das Maß aller Dinge. Am x86 LLVM oder der Intel Compiler. Dann stellt sich die Frage, wie die interconnects bedient werden. OpenMP ist z.B beim GCC quasi ein Compiler Flag. Es gibt da aber
wenig praxistauglich. Das heißt, bei Haskell gibt es schon einige größere Angriffsflächen für Optimierung. So ein paar grundlegende Infos zu C++ Optimierung gibt es hier und da auch noch, aber ich glaube, früher gab es davon noch mehr, im Moment werden Online viel Bücher zu C++ Optimierung in den
-
Thread
sqrtf() ist immer 1 - STM32F401
wird dann aber nicht in r0 zurück gegeben, sondern im FPU Register s0 ¹. Funktioniert auch mit Optimierungen. Das funktioniert so mit dem GCC-ARM-Embedded, welcher u.a. bei der STM32CubeIDE mitgeliefert wird, und auch einzeln hier bezogen werden kann: https://developer.arm.com/downloads/-/arm-gnu-toolchain-downloads Bei manchen anderen (alten) GCC Distributionen klappt es so nicht. 1: AAPCS https://github.com/ARM-software/abi-aa/blob/2a70c42d62e9c3eb5887fa50b71257f20daca6f9/aapcs32/aapcs32.rst#procedure-calling
-
Thread
Sehr schneller Absolutbetrag AVR
Kriegsfuß. Deshalb hier zur Diskussion: Das ist optimal. Nun schreibs mal in C hin und staune ;-) Optimierung aber einschalten. MfG Falk
[avrasm] sbrc x, 7 neg x [/avrasm] besteht? Ich denke, das ganze lade-speicher kramsel vom gcc kann man eh nicht groß verändern. Habe auch festgestellt, dass der gcc durch bestimmte "programmiertechnische" Kniffs dazu gebracht werden kann, tatsaechlich nur etwa doppelt so großen Code zu erzeugen
-
Thread
arduino oder GCC Programmierung
sowas, aber libstdc++ ist eine binäre (vorcompilierte) Library (und eins der "missing pieces" beim AVR-GCC, das hat nie jemand bis zu Ende gebracht). Durch all den Template-Kram kann man bei C++ zwar auch mehr in Headerfiles unterbringen, aber das Argument der Compilezeit bleibt dabei natürlich.
Debug unterscheidet sowieso nur Microsoft. ich meine nicht nur das -g, sondern Profile die auch Optimierung und defines anders setzen. Die Optimierung macht debuggen schwieriger.
-
Thread
AVR Mikrocontroller Lohnenswert?
bräuchtest du ja kein Arduino. Dann kaufst du einen AVR oder STM32 und entwickelst mit Eclipse und GCC. Also erzähl nichts.
https://www.mikrocontroller.net/articles/AVR-Tutorial https://www.mikrocontroller.net/articles/AVR-GCC-Tutorial
-
Thread
Erfahrungen eines Einsteigers
festgehalten habe sind ja auch schon eine Zeit her) und mir einfach mal mit -S zeigen lassen was denn gcc aus dem Original Code macht. Was mir so auf die schnelle auffällt. Wenn ich OCR1A und OCR1B mit den gleichen Werten bestücke (kommt in diesem Program öfters vor) lädt gcc zweimal die Register r24 und
nur wüsste warum, irgendwas habe ich da wohl man unbewusst > verbockt. Hat einer einen Tipp? Optimierung einschalten vielleicht? Ich habe mein Beispiel mit -O2 übersetzt. Ohne Optimierung arbeitet der gcc halt stur nach den Anweisungen, wie sie im Quellcode vorkommen. Schön fürs Debugging, weniger
-
Thread
codeblocks meckert bei _delay_ms()
Vergessen, die Optimierung einzuschalten?
Optimierung ist an , verschieden schon probiert auch aus...alles dasselbe Desaster... Will mir einfach nicht in den Kopf.... aber es ist nun mal so... ;) Gruss und Dank Gerhard
-
Thread
Ringbuffer in C optimieren?
zu verwenden? Wobei ich mich mit der Frage mal auf Buffergrößen beschränken möchte, die eine Optimierung zulassen, wie in dem Assemblerbeispiel genannt.
einem Zeitrahmen fertig zu bekommen oder dergleichen. Es geht mir hier einzig und alleine um eine Optimierung der Optimierung wegen. Also aus Spaß an der Sache ;-) Also: @Karl heinz Buchegger: Buffer+BufferSize (beide sind dem Compiler bekannt, werden also wärend des Compilierens bereits zusammengefasst
-
Thread
Balkenanzeige der Temp auf LCD Anzeige
Könnte mir jemand beantworten was diese Fehlermeldung bedeutet? c:/winavr-20090313/bin/../lib/gcc/avr/4.3.2/../../../../avr/bin/ld.exe: Thermometer.elf section .text will not fit in region text c:/winavr-20090313/bin/../lib/gcc/avr/4.3.2/../../../../avr/bin/ld.exe: region text overflowed by 460
Könnte mir jemand beantworten was diese Fehlermeldung bedeutet? > > c:/winavr-20090313/bin/../lib/gcc/avr/4.3.2/../../../../avr/bin/ld.exe: > Thermometer.elf section .text will not fit in region text > c:/winavr-20090313/bin/../lib/gcc/avr/4.3.2/../../../../avr/bin/ld.exe: > region text overflowed
-
Thread
WinAVR optimiert Wertzuweisung weg?!
Bug in avr-gcc/WinAVR? Oder habe ich einfach irgendwas falsch gemacht...
weil etwas (anscheinend) funktioniert, ist es noch lange nicht richtig ;) Frühere Versionen des gcc (3.xx) waren bei der Optimierung an dieser Stelle zurückhaltender, da ging das auch ohne volatile. Die aktuellen gcc's nutzen die C-Sprachnorm da gandenloser aus, und dazu gehört eben auch das wegoptimieren
-
Thread
avrgcc: verteilte Array-Initialisierung
const Name __flash1 NameTable[] = Named Address Spaces? Was haben die damit zu tun? https://gcc.gnu.org/onlinedocs/gcc/Named-Address-Spaces.html#AVR-Named-Address-Spaces-1
Ursache für die fehlende initReadSensors_Schd_NameTableEntry_ctor() ist Linker-Optimierung. Wenn ich die Option -flto entferne, sind sie im Objekt enthalten. Gibt es eine Möglichkeit, dem Linker mitzuteilen, dass er eine Funktion von der Optimierung ausnehmen soll?
-
Thread
32-Bit Arithmetik mit dem AVR
Hi! Kann es sein, dass der GCC es noch nicht so ganz drauf hat mit 32-Bit Arithmetik im AVR? cplex_data ist eine 32-Bit Variable, seconds, minutes und hours sind 8-Bit Variablen. Das ganze ist für eine Binär-Uhr und soll das Ausgaberegister
wird nämlich die generische GCC MathLib gelinkt, die ist natürlich gross und langsam.
-
Thread
Zugriffe auf Strukturen, Unions etc
sollten sich die C- und C++- Frontends in dieser Hinsicht gar nicht unterscheiden, praktisch aber hat GCC 3.4 aus AVR-Sicht ein paar Eigentümlichkeiten (teilweise auch Rückschritte in der Optimierung im Vergleich zu früheren Versionen), die sich ebenso eigentümlich noch dazu zwischen C und C++ unterscheiden
Frontend produziert wohl etwas anderem Zwischencode und die Instruction-Templates der entsprechenden Optimierung greifen da nicht.
-
Thread
STM32F4xx: Fragen zum startup
UART2 zu machen, und mit einem Timer die Zeit messen für x Durchläufe. Bitte daran denken, dass der GCC je nach Optimierung evtl. Deinen Code auf nix zusammenstutzt, da alle Variablen nicht wirklich verwendet werden. Deshalb alles irgendwie zusammenzählen, und dann am Ende z. B. via UART ausgeben. volatile ist nicht hilfreich, da es den GCC von Optimierungen abhält. Bitte noch von "Template" nach "fpu-demo" oder so umbenennen. Ich würde es dann so zusammenbauen, dass "Auspacken", "make" zum Bauen für Linux genügt - es gibt hier immer
-
Thread
einfache pin abfrage problem
Compiler erkennt, daß sie nichts >>tut, wird sie sowieso komplett wegoptimiert. Sofern man die Optimierung nicht abschaltet (-O0). Ist sie eingeschaltet und man möchte aus irgendwelchen Gründen dennnoch mit einer Zählschleife verzögern, dann hilft 'volatile int i'.
Bzgl. der Optimierung muß ich muß Heinzi beipflichten. @Friedrich: Keine Angst ich verstehe das schon als Scherz. Allerdings als einen, der es durchaus Wert ist, sich mit ihm zu beschäftigen. >>> kleines schleifenräzel
-
Thread
PROGMEN Array in Schleife verarbeiten
http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial#Programmspeicher_.28Flash.29 Wenn es ein AVR + GCC ist, was mir meine *Glaskugel* sagt... *Zaunpfahl wink*
Alex schrieb: > War es so gemeint wegen der automatischen Optimierung? Was meinst du mit "automatischen Optimierung"? Bei der Schleifen-Variante führt kein Weg an den Flash-Funktionen vorbei.
-
Thread
STM32: Arrays und Performance
Gut, dann kau ich das einmal neu durch. Das liegt sicher nicht am GCC. Ich habe hier nen STM32F411 auf 100MHz. GCC 6.2.1 [pre] signed: | O0 | Os | O1 | O2 | O3 ------|--------|--------|--------|--------|------- 8bit | 88.10s | 28.82s |
Beitrag #4923916: > Irks: IIRC deaktiviert -ffreestanding etliche interne Builtins und > Optimierungen, Laut GCC-Doku ist ffreestanding dafür gedacht: "A freestanding environment is one in which the standard library may not exist, and program startup may not necessarily be at main." Genau deswegen
-
Thread
Inline Assambler compiler error
funktioniert auch nicht und stammt von http://www.roboternetz.de/wissen/index.php/Inline-Assembler_in_avr-gcc mfg.
als der Code, den Hochsprachen-Compiler erzeugen. Für BASCOM ist das uneingeschränkt der Fall. Für GCC muss man manchmal staunen, daß der Code besser ist als handgeschrieben. Vor allem dann, wenn er Optimierungen sieht, die einem verborgen blieben, oder wenn Cache und Pipelines im Spiel sind oder der
-
Thread
Schneller Mikrocontroller
auch kein Mensch. Moby schrieb im Beitrag #3734645: > Asm-Code ist mehr als "irgendwelche Optimierungen". Er ist die > einfachste, kleinstmöglichste, schnellste, paßgenaueste Lösung jeder > Aufgabe. Dem Stimme ich nicht zu. Ich gebe dir recht, ASM ist mehr als nur eine Optimierung. Ich gebe
spielts keine Rolle. Die Funktion kann der Compiler trotzdem nicht inlinen (auch bei entsprechender Optimierung, habs gerade mal wieder gemessen).
-
Thread
C++ in C Umschreiben
überschrieben werden, weil sie abstrakt (ohne Code) sind. Inline hat eher etwas mit Performance-Optimierung zu tun, das kannst du erst mal außen vor lasen.
wo die C/C++ Grenze verlaufen soll. Oder auch das ganze Ardiuno- und Wire-Zeugs portieren. Mit GCC kann man gemischte C/C++ projekte machen.
-
Thread
Wieviel mehr an Strom braucht man für 64 Bit fähige Mikrocontroller?
der aktuelle Prozessor zu deiner Anwendung passt. Und auch wieviel Zeit die Entwickler in die Optimierung stecken duerfen. Olaf
der aber erstaunlicherweise immer ausgereicht hat. Der Keil-Compiler war sehr geschickt in der Optimierung.
-
Thread
Wie verhält sich enum ++ beim Überlauf?
muss ich das wohl abfangen :( Langsam wirds eng auf dem 2313.. Weiß jemand, was ich da zur Optimierung alles tun kann? (okay- ist eigentlich nen anderes topic wert..)
Braucht auf dem AVR zwei Bytes (sizeof(int) == 2), aber man kann es beim GCC (dessen Forum das ja hier ist) mittels __attribute__(packed) auch auf ggf. ein Byte reduzieren.
-
Thread
Slight Optimization oder Size Optimizations
Beitrag #1979288: > Kann mich jemand aufklären? Du hast Code geschrieben, der abhängig von der Optimierung seine gedachte Funktion nicht mehr erfüllt. Beispielsweise Zeitschleifen, die mit Optimierung nicht mehr (oder nicht lang genug) warten.
Markus schrieb im Beitrag #1980005: > Die Frage war eigentlich warum es mit Slight Optimierung funktioniert > und mit Size nicht, obwohl beide brauchbaren gut optimierten Code > liefern. Ca 30% weniger. Dazu müßte man erstmal wissen, was Du mit "Slight Optimization" meinst. Im GCC-Manual
-
Thread
Tester für Spezialversion des AVR Bootloaders optiboot gesucht!
EEPROM-Unterstützung hat unsere Version nicht und mit AVR-GCC 5.4 sind noch 34 Bytes frei.
ATtiny von Anno 2014 wie t1634, t841 oder t167, die nach meiner Erinnerung nicht alle von älteren arg-gcc Versionen unterstützt wurden. Außerdem unterscheiden sich die avr-gcc Versionen durch unterschiedliche Optimierung, was natürlich für die Assembler-Quelle keine Rolle spielt. Die Optimierung ist aber
-
Thread
Kaputt optimiert - was mache ich falsch?
anpassen, denn da liegt dein Hund im Pfeffer oder der Hase begraben oder sowas: solange du die Optimierung ausschaltest, ist der generierte Code langsam genug für das Display. Mit Optimierung hälst du einfach mal das vorgeschriebene Timing nicht mehr ein. Was glaubst du, warum schon zig Programmierer
anpassen, denn da > liegt dein Hund im Pfeffer oder der Hase begraben oder sowas: solange > du die Optimierung ausschaltest, ist der generierte Code langsam genug > für das Display. Mit Optimierung hälst du einfach mal das > vorgeschriebene Timing nicht mehr ein. Aua, ich muss dringend mal wieder einen
-
Thread
Arduino Uno struct in PROGMEM lesen ?
Konstanten kann der Optimizer super gut optimieren. Den Zugriff über Variablen weniger. Wenn man die Optimierung deaktiviert, dann brichts auch mit Konstanten ins Essen. Hier schalte ich partiell die Optimierung per volatile ab. a funktioniert trotz falschem Zugriff, dank Optimierung richtig b funktioniert
Beitrag #7509025: > Du hast das Problem des TO nicht verstanden! > Natürlich liegt es an der Optimierung, dass er "versehentlich" richtige > Daten bekommt, wenn ihm Konstanten verwendet. Wenn ein Programm mit/ohne Optimierung funktioniert, und ohen/mit nicht, liegt es niemals an der Optimierung
-
Thread
Optimierung bei if-Abfrage mit kurzem Rumpf
Moin moin, Ich möchte mit folgendem C-Code-Schnipsel für ATMega8 ein Signal generieren: [c] ISR(TIMER0_OVF_vect) { uint16_t temp = outputValue; // global deklariert for(uint8_t i=16; i>0 i--) { if(temp & (1<<15)) { SDA_PORT |= (1<<SDA_PIN); } else { SDA_PORT ~= (1<<SDA_PIN); } // toggle clock SCL_PORT &= ~(1<<SCL_PIN); SCL_PORT |= (1<<SCL_PIN); // next bit temp <<= 1; } } [/c] Wird soweit mit -Os ganz nett übersetzt in sbi, cbi etc. Nur die if-else-Abfrage mit den extrem kurzen Schleifenrümpfen (1 Assembler-Befehl
-
Thread
C und LCD Frage.
Bibliothek anpassen oder eine andere nehmen. Z.B. die hier. http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial#LCD-Ansteuerung MfG Falk
Anfängerfehler wo ich z.B. noch was vergessen haben könnte einzustellen? Ich hab auch irgendwo hier im GCC- Tutorial gesehen das man die Optimierung des Codes einschalten sollte. Aber wo schaltet man die im AVR-Studio ein...hab nämlich bisher noch nirgens was gefunden. MfG Matthias (FlascheGlühweinaufmach
-
Thread
Warum übersetzt GCC-Compiler so unterschiedlich?
freq_zaehler ist unsigned long, phase_index ist unsigned int, Atmel AVR 8-bit GNU Toolchain 3.6.0.1734 (avr-gcc-5.4.0.exe), AVR Studio 4.19 Vielen Dank im voraus für eine Erklärung.
schrieb im Beitrag #5375814: > 0x00008000 Das ist ein long (32bit) (1<<15) ist ein int. Optimierungen sind eingeschaltet?
-
Thread
PIC oder AVR, was ist besser
gut arbeiten, aber nicht unter Linux. Ab PIC24 basieren die C-Compiler von Microchip auch auf dem GCC. Microchip bietet die nur für Windows an. Technisch könntest Du den auf Linux portieren (und dabei den Lizenzmanager rauswerfen), aber die Lizenz der Bibliotheken (kein GNU) verbietet Dir das. (*)
Microchip Verfügbar ist. Na gut, aber wenn ich als Hobby-Fummler auf der anderen Seite auch Optimierung haben kann, dann gehe ich doch da hin, oder?
-
Thread
Struct als Argument (C++)
Die Optimierungs Algorithmen von GCC und G++ sind a auch logischerweise die selben...
Niklas Gürtler schrieb im Beitrag #5666196: > Die Optimierungs Algorithmen von GCC und G++ > sind a auch logischerweise die selben... Besonders die, die mit Templates zu tun haben...
-
Thread
Conways Game of Live zu langsam auf Z80
Ohne Optimierung gibts halt keine Optimierung...
A. K. schrieb im Beitrag #3939962: > Ohne Optimierung gibts halt keine Optimierung... Die schalte ich nur bei "release" ein, das dauert 20 Minuten !!!! bis der sdcc fertig ist mit "Optimierung".... AMD 3.8GHZ Quadcore. SDCC nimmt aber nur 1 Core
-
Thread
Art der if-Auswahl nur Geschmackssache?
Zitat von einem unserer Informatiker: "Code soll für einen selbst übersichtlich und lesbar sein. Optimierung macht der Compiler".
und c auf 32 Bit erweitert werden > und eine 32 Bit Multiplikation ausgeführt werden. Der AVR-GCC macht das schon seit geraumer Zeit besser, zumindest bei Controllern mit Hardwaremultiplizierer. Johann, der auch hier im Forum aktiv ist, hat's gerichtet: https://gcc.gnu.org/ml/gcc-patches/
-
Thread
Rust - ist das hier um zu bleiben?
Rust-Frontend kommt offiziell in die GCC https://www.golem.de/news/programmiersprache-rust-frontend-kommt-offiziell-in-die-gcc-2207-166831.html
Achja, falls das hier manchen nicht klar ist: GCC + Rust gibt es in zwei Varianten. 1) Rust-Frontend in GCC. Darum ging es hier im Gespräch hauptsächlich. 2) GCC als codegen backend von rustc. Beide werden aktiv entwickelt und beide sind wichtig
-
Thread
Aufwandschätzung für Cross-Assembler
absolut nicht vollwertig), denn er kannte keine > bedingte Assemblierung, er kannte keine Makros GCC-Preprozessor :)
vollständige Kontrolle über den Code zu haben. > Auch wenn er vielleicht nicht optimal ist. Eine Optimierung muss nicht eine der "verrückten" Transformationen sein, die der GCC bei -O3 macht. Z.B., der MSP430 hat Konstantengeneratoren, die, je nach Adressierungsmodus -1, 0, 1, 2, 4 und 8 erzeugen können
-
Thread
[ASM] Unbenutzte Symbole entfernen
einfach mal an, was für Unterschiede der Compiler mit und ohne -ffunction-sections erzeugt (mittels "gcc -S" Assembler-Output erzeugen).
auch auf Assembler-Programme anwendbar. M.W. gibt bzw. gab es optimierende Assembler, die diese Optimierung implementiert haben. Der GNU-Assembler gehört aber nicht dazu.
-
Thread
AVR GCC Tutorial
bereits installiert ist. Ach ja, um auf Deine Ausgangsfrage zurückzukommen: WINAVR enthält den AVR-GCC-C-Compiler, auf den sich auch das [[AVR-GCC-Tutorial]] bezieht...
Ich habe jetzt nochmal nachgesehen ich habe kein GCC drauf. Da hat sich also niemand an meinem PC vergriffen. Aber ich kann trotzdem GCC auswählen. jedoch seht beim starten das: gcc plug-in: No WinAVR installation found. The AVR GCC plug-in can still
-
Thread
Probleme mit Codeoptimierung/Timer_Wait
Variable nie gelesen wird und damit ungenutzt ist und er sie damit rausschmeisst (bei aktiver Optimierung). >http://www.wer-weiss-was.de/theme9/article92054.html >An volatile-Variablen werden keine Optimierungen ausgeführt, da der >Compiler annimmt, daß sich der Inhalt jederzeit ändern kann, z.
zu der "register" noch eine Bedeutung hatte, existierte "volatile" noch garnicht. Weil mangels Optimierung unnötig. Als die Optimierung kam und "volatile" nötig wurde, wurde "register" unnötig.
-
Thread
STM32F4-Discovery - welche toolchain?
nicht an meinen selbst gesetzten Breakpoints >stehen :( >vielleicht hat jemand eine idee? Optimierung abschalten?
holger schrieb im Beitrag #2745098: > Optimierung abschalten? hab ich und -ggdb flag ist auch gesetzt