We're sorry but this page doesn't work properly without JavaScript enabled. Please enable it to continue.
Feedback

LLVM for the Apollo Guidance Computer

00:00

Formal Metadata

Title
LLVM for the Apollo Guidance Computer
Title of Series
Number of Parts
561
Author
License
CC Attribution 2.0 Belgium:
You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal purpose as long as the work is attributed to the author in the manner specified by the author or licensor.
Identifiers
Publisher
Release Date
Language

Content Metadata

Subject Area
Genre
Abstract
Nearly 50 years ago on the 20th of July 1969 humans set foot on the moon for the first time. Among the many extraordinary engineering feats that made this possible was the Apollo Guidance Computer, an innovative processor for its time with an instruction set that was thought up well before the advent of C. So 50 years later, why not implement support for it in a modern compiler such as LLVM? This talk will give a brief overview of some of the architectural features of the Apollo Guidance Computer followed by an account of my implementation of an LLVM target so far. The shortcomings of LLVM when it comes to implementing such an unusual architecture will be discussed along with the workarounds used to overcome them.
ComputerNeuroinformatikBitFront and back endsComputer animation
Front and back endsComputerComputer wormComputer programModule (mathematics)Time domainComputer-generated imageryIterationPrototypeBlock (periodic table)Read-only memoryEquals signArchitectureNeumann boundary conditionParity (mathematics)Loop (music)Price indexExtension (kinesiology)OctahedronDecimalGeneric programmingCodeRepetitionACIDSequenceConstraint (mathematics)Data acquisitionFluid staticsLengthString (computer science)Absolute valueSpeicheradresseProgram codeComputer hardwareTable (information)IntegerWordBitNumberMereologySign (mathematics)AdditionFlagCodeField (computer science)Area1 (number)SpacetimeSound effectContent (media)MathematicsParsingParsingDirection (geometry)Point (geometry)NamespaceSemiconductor memoryComputer architectureCodierung <Programmierung>Slide ruleParity (mathematics)Programmer (hardware)Extension (kinesiology)Computer programmingIdentifiabilityComputer fileSubject indexingOnline helpOperator (mathematics)Statement (computer science)Front and back endsQuicksortCode2 (number)Endliche ModelltheorieAliasingProjective planeConstructor (object-oriented programming)Order (biology)ImplementationStructural loadNeuroinformatikShared memoryFlip-flop (electronics)Module (mathematics)Block (periodic table)Default (computer science)Arithmetic meanGeneric programmingSocial classRevision controlGame controllerOptical disc driveElectric generatorLimit (category theory)Bit error rateSingle-precision floating-point formatComplex numberRight angleArray data structurePatch (Unix)CASE <Informatik>Doubling the cubeDifferent (Kate Ryan album)Clique-widthDampingFile formatInformationHydraulic jumpHigh-level programming languageCompilation albumLatent heatLevel (video gaming)Pairwise comparisonComputer animation
Equals signString (computer science)OvalDefault (computer science)Parity (mathematics)Fluid staticsCodierung <Programmierung>Extension (kinesiology)OpcodeASCIIFlagBus (computing)CodeAddress spaceClefSoftware engineeringLogical constant8 (number)Sheaf (mathematics)SubsetFunction (mathematics)Computer fileLinker (computing)ImplementationStack (abstract data type)EmulatorPrice indexControl flowStatement (computer science)Point (geometry)Patch (Unix)Parity (mathematics)Function (mathematics)Assembly languageImplementationDirection (geometry)BitPointer (computer programming)ResultantSequenceCodeTask (computing)Series (mathematics)Form (programming)Transformation (genetics)Computer fileParsingProjective planeDivisorIntegerLinker (computing)Array data structurePerformance appraisalFlagSubject indexingLogical constantUniform resource locatorPredicate (grammar)Sign (mathematics)Patch (Unix)Statement (computer science)Validity (statistics)Object (grammar)Message passingFraction (mathematics)ExpressionString (computer science)Expandierender Graph2 (number)Operator (mathematics)1 (number)Link (knot theory)Extension (kinesiology)Sheaf (mathematics)NumberError messageMereologyFunctional (mathematics)Semiconductor memorySoftware testingAddress spaceTable (information)Order (biology)Instance (computer science)Pattern languageRaw image formatParameter (computer programming)outputTouchscreenRepresentation (politics)Software bugMatching (graph theory)Doubling the cubeAutomatic differentiationResource allocationMultiplication signWordNumeral (linguistics)Fitness functionLine (geometry)Front and back endsSingle-precision floating-point formatSpeicheradresseComputer programmingControl flowCASE <Informatik>MathematicsCodierung <Programmierung>SubsetDebuggerSlide ruleFlow separationCorrespondence (mathematics)Stack (abstract data type)Ocean currentComputer animation
Linker (computing)Compilation albumFile formatProcess (computing)Modal logicFunction (mathematics)Functional (mathematics)Object (grammar)CodeUniform resource locatorEquivalence relationSoftware testingComputer fileComputer programmingAssembly languageMultiplication signOperator (mathematics)Computer animation
Computer animation
Transcript: English(auto-generated)