mirror of
				https://github.com/c64scene-ar/llvm-6502.git
				synced 2025-10-31 08:16:47 +00:00 
			
		
		
		
	Thread local storage is not supported by the XMOS linker so we handle thread local variables by lowering the variable to an array of n elements (where n is the number of hardware threads per core, currently 8 for all XMOS devices) indexed by the the current thread ID. Previously this lowering was spread across the XCoreISelLowering and the XCoreAsmPrinter classes. Moving this to a separate pass should be much cleaner. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@181124 91177308-0d34-0410-b5e6-96231b3b80d8
		
			
				
	
	
		
			37 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			37 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| //===-- XCore.h - Top-level interface for XCore representation --*- C++ -*-===//
 | |
| //
 | |
| //                     The LLVM Compiler Infrastructure
 | |
| //
 | |
| // This file is distributed under the University of Illinois Open Source
 | |
| // License. See LICENSE.TXT for details.
 | |
| //
 | |
| //===----------------------------------------------------------------------===//
 | |
| //
 | |
| // This file contains the entry points for global functions defined in the LLVM
 | |
| // XCore back-end.
 | |
| //
 | |
| //===----------------------------------------------------------------------===//
 | |
| 
 | |
| #ifndef TARGET_XCORE_H
 | |
| #define TARGET_XCORE_H
 | |
| 
 | |
| #include "MCTargetDesc/XCoreMCTargetDesc.h"
 | |
| #include "llvm/Target/TargetMachine.h"
 | |
| 
 | |
| namespace llvm {
 | |
|   class FunctionPass;
 | |
|   class ModulePass;
 | |
|   class TargetMachine;
 | |
|   class XCoreTargetMachine;
 | |
|   class formatted_raw_ostream;
 | |
| 
 | |
|   void initializeXCoreLowerThreadLocalPass(PassRegistry &p);
 | |
| 
 | |
|   FunctionPass *createXCoreISelDag(XCoreTargetMachine &TM,
 | |
|                                    CodeGenOpt::Level OptLevel);
 | |
|   ModulePass *createXCoreLowerThreadLocalPass();
 | |
| 
 | |
| } // end namespace llvm;
 | |
| 
 | |
| #endif
 |