|  | Commit message (Collapse) | Author | Age | Files | Lines | 
|---|
| | 
| 
| 
| 
| 
| 
| 
| | This is a preliminary step toward having TargetPassConfig be able to
start and stop the compilation at specified passes for unit testing
and debugging.  No functionality change.
llvm-svn: 159567 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| | The TargetPassManager's default constructor wants to initialize the PassManager
to 'null'. But it's illegal to bind a null reference to a null l-value. Make the
ivar a pointer instead.
PR12468
llvm-svn: 155902 | 
| | 
| 
| 
| 
| 
| | some superfluous forward declarations.
llvm-svn: 152997 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| | Passes prior to instructon selection are now split into separate configurable stages.
Header dependencies are simplified.
The bulk of this diff is simply removal of the silly DisableVerify flags.
Sorry for the target header churn. Attempting to stabilize them.
llvm-svn: 149754 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | Allows command line overrides to be centralized in LLVMTargetMachine.cpp.
LLVMTargetMachine can intercept common passes and give precedence to command line overrides.
Allows adding "internal" target configuration options without touching TargetOptions.
Encapsulates the PassManager.
Provides a good point to initialize all CodeGen passes so that Pass ID's can be used in APIs.
Allows modifying the target configuration hooks without rebuilding the world.
llvm-svn: 149672 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | change, now you need a TargetOptions object to create a TargetMachine. Clang
patch to follow.
One small functionality change in PTX. PTX had commented out the machine
verifier parts in their copy of printAndVerify. That now calls the version in
LLVMTargetMachine. Users of PTX who need verification disabled should rely on
not passing the command-line flag to enable it.
llvm-svn: 145714 | 
| | 
| 
| 
| 
| 
| 
| | and code model. This eliminates the need to pass OptLevel flag all over the
place and makes it possible for any codegen pass to use this information.
llvm-svn: 144788 | 
| | 
| 
| 
| 
| 
| | These are strictly utilities for registering targets and components.
llvm-svn: 138450 | 
| | 
| 
| 
| | llvm-svn: 135953 | 
| | 
| 
| 
| 
| 
| 
| 
| | - Introduce JITDefault code model. This tells targets to set different default
  code model for JIT. This eliminates the ugly hack in TargetMachine where
  code model is changed after construction.
llvm-svn: 135580 | 
| | 
| 
| 
| 
| 
| 
| | (including compilation, assembly). Move relocation model Reloc::Model from
TargetMachine to MCCodeGenInfo so it's accessible even without TargetMachine.
llvm-svn: 135468 | 
| | 
| 
| 
| 
| 
| | MCTargetDesc to prepare for next round of changes.
llvm-svn: 135219 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| | - Each target asm parser now creates its own MCSubtatgetInfo (if needed).
- Changed AssemblerPredicate to take subtarget features which tablegen uses
  to generate asm matcher subtarget feature queries. e.g.
  "ModeThumb,FeatureThumb2" is translated to
  "(Bits & ModeThumb) != 0 && (Bits & FeatureThumb2) != 0".
llvm-svn: 134678 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| | be the first encoded as the first feature. It then uses the CPU name to look up
features / scheduling itineray even though clients know full well the CPU name
being used to query these properties.
The fix is to just have the clients explictly pass the CPU name!
llvm-svn: 134127 | 
| | 
| 
| 
| 
| 
| | predicates.
llvm-svn: 129816 | 
| | 
| 
| 
| | llvm-svn: 129311 | 
| | 
| 
| 
| 
| 
| | No one uses *-mingw64. mingw-w64 is represented as {i686|x86_64}-w64-mingw32. In llvm side, i686 and x64 can be treated as similar way.
llvm-svn: 125747 | 
| | 
| 
| 
| | llvm-svn: 124077 | 
| | 
| 
| 
| 
| 
| | and fixes here and there.
llvm-svn: 123170 | 
| | 
| 
| 
| | llvm-svn: 121355 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| | they need to be for the MBlaze backend because AsmPrinter::isBlockOnlyReachableByFallthrough does not take into account delay slots.
2. Re-adding .mask and .frame directives in printed assembly.
3. Adding .ent and .end directives in printed assembly.
4. Minor cleanups to MBlaze backend.
llvm-svn: 120095 | 
| | 
| 
| 
| 
| 
| | out of TargetRegisterInfo to TargetFrameInfo, which is definitely much better suitable place
llvm-svn: 119097 | 
| | 
| 
| 
| 
| 
| | Major cleanup of whitespace and formatting issues in MBlaze backend
llvm-svn: 118434 | 
| | 
| 
| 
| | llvm-svn: 117420 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | mostly based on the ARM AsmParser at this time and is not particularly
functional.
Changed the MBlaze data layout from:
    "E-p:32:32-i8:8:8-i16:16:16-i64:32:32-f64:32:32-v64:32:32-v128:32:32-n32"
to:
    "E-p:32:32:32-i8:8:8-i16:16:16"
because the MicroBlaze doesn't have i64, f64, v64, or v128 data types.
Cleaned up the MBlaze source code:
    1. The floating point register class has been removed. The
       MicroBlaze does not have floating point registers. Floating
       point values are simply stored in integer registers.
    2. Renaming the CPURegs register class to GPR to reflect the
       standard naming.
    3. Removing a lot of stale code from AsmPrinter after
       the conversion to InstPrinter.
    4. Simplified sign extended loads by marking them as
       expanded in ISelLowering.
llvm-svn: 117054 | 
| | 
| 
| 
| | llvm-svn: 116993 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| | though it
compiles on OS X. I'll ensure that it builds on a linux machine before committing
again.
llvm-svn: 116991 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | 1. A delay slot filler that searches for valid instructions
       to fill the delay slot with. Previously NOPs would always
       be inserted into delay slots.
    2. Support for MC based instruction printer added.
    3. Support for MC based machine code generation and ELF
       file generation. ELF file generation does not yet
       completely work as much of the ELF support infrastructure
       is still x86/x86-64 specific.
    4. General clean up of the MBlaze backend code. Much of the
       tablegen code has been cleanup and simplified.
Bug Fixes:
    1. Removed duplicate periods from subtarget feature descriptions.
    2. Many of the instructions had bad machine code information
       in the tablegen files. Much of this has been fixed.
llvm-svn: 116986 | 
| | 
| 
| 
| 
| 
| 
| 
| | Move EmitTargetCodeForMemcpy, EmitTargetCodeForMemset, and
EmitTargetCodeForMemmove out of TargetLowering and into
SelectionDAGInfo to exercise this.
llvm-svn: 103481 | 
|  | The MicroBlaze is a highly configurable 32-bit soft-microprocessor for
use on Xilinx FPGAs. For more information see:
http://www.xilinx.com/tools/microblaze.htm
http://en.wikipedia.org/wiki/MicroBlaze
The current LLVM MicroBlaze backend generates assembly which can be
compiled using the an appropriate binutils assembler.
llvm-svn: 96969 |